These tender, juicy meatballs are browned to perfection then gently simmered in a luscious creamy tomato basil sauce. The combination of crushed tomatoes, heavy cream, fresh basil, and Parmesan creates a velvety coating that clings to every bite.
Ready in about 50 minutes from start to finish, this Italian-American classic is perfect for busy weeknights yet impressive enough for guests. Serve over pasta, rice, or with crusty bread to soak up every last drop of sauce.
The skillet was almost too small the first night I piled sixteen meatballs into bubbling tomato cream, but nobody at the table cared about geometry. What mattered was the silence that fell after the first bite, broken only by someone reaching for more bread to mop up sauce. That dish became my Tuesday night tradition through an entire rainy November.
My neighbor Linda knocked on my door once asking what smelled so good, and she ended up staying for dinner with a glass of Chianti and a slab of crusty bread. Now she brings me tomatoes from her garden every summer, and I always make this sauce as a thank you.
Ingredients
- 500 g ground beef (or beef and pork mix): A blend of beef and pork gives the most tender result, but straight beef works wonderfully too.
- 1/2 cup breadcrumbs: These keep the meatballs soft inside, so do not skip them even if you are tempted.
- 1/4 cup grated Parmesan cheese (meatballs): Adds a salty depth that melts right through the center of each ball.
- 1 large egg: The binder that holds everything together without making the mix dense.
- 2 cloves garlic, minced (meatballs): Fresh garlic only here, the jarred stuff will let you down.
- 1/4 cup milk: Softens the breadcrumbs so they blend invisibly into the meat.
- 1/2 tsp salt and 1/4 tsp black pepper (meatballs): Seasoning the meat itself before cooking means the flavor goes all the way through.
- 2 tbsp fresh basil, finely chopped (or 1 tsp dried): Fresh basil in the meatballs is a small touch that makes a noticeable difference.
- 2 tbsp olive oil: Use a decent one for browning since it becomes part of the sauce flavor later.
- 1 small onion, finely chopped: The sweetness of onion cooked down in those meatball drippings is the hidden magic of this dish.
- 3 cloves garlic, minced (sauce): More garlic for the sauce because this is Italian American comfort food and restraint has no place here.
- 1 can (400 g) crushed tomatoes: A good quality canned tomato beats a bland fresh one every single time.
- 1/2 cup heavy cream: This is what turns a regular tomato sauce into something people will ask you for the recipe for.
- 1/2 cup chicken or vegetable broth: Loosens the sauce just enough to let the meatballs simmer and cook evenly.
- 1 tsp sugar (optional): A pinch of sugar tames acidic tomatoes and makes the whole sauce taste rounder.
- 1/2 tsp salt and 1/4 tsp black pepper (sauce): Adjust to your taste at the very end after the sauce has reduced.
- 1/3 cup fresh basil leaves, chopped (sauce): Stirred in at the finish for a bright herbal punch that wakes everything up.
- 1/4 cup grated Parmesan cheese (sauce): Melts into the cream for an extra layer of richness.
- Cooked pasta, rice, or crusty bread for serving: Pappardelle is my favorite but a big hunk of sourdough is equally correct.
- Extra fresh basil leaves: For garnish and for making the bowl look as good as it smells.
Instructions
- Mix the meatball ingredients:
- Get your hands in there and combine the ground meat, breadcrumbs, Parmesan, egg, garlic, milk, salt, pepper, and basil until just mixed. Stop as soon as everything looks even because overmixing makes meatballs tough and rubbery.
- Shape the meatballs:
- Roll the mixture into golf ball sized portions, aiming for about sixteen total. Wet hands help keep the surface smooth and prevent sticking.
- Brown the meatballs:
- Heat olive oil in a large skillet over medium heat and cook the meatballs, turning them frequently, until golden on all sides, roughly six minutes. They will finish cooking in the sauce so a pink center right now is perfectly fine.
- Start the sauce base:
- In the same skillet with all those flavorful drippings, cook the onion until softened and translucent, about three to four minutes, then add the garlic for thirty seconds until fragrant.
- Build the tomato sauce:
- Pour in the crushed tomatoes and broth, stir in the salt, pepper, and sugar if using, and let it simmer for five minutes so the flavors start to marry.
- Add the cream and cheese:
- Stir the heavy cream and Parmesan into the sauce, mix in the chopped basil, then nestle the browned meatballs back into the pan so they are halfway submerged.
- Simmer until done:
- Cook uncovered on low heat for fifteen to twenty minutes, gently turning the meatballs once or twice, until they are cooked through and the sauce has thickened to a silky consistency.
- Finish and serve:
- Taste the sauce and adjust the salt and pepper, scatter extra fresh basil on top, and serve over pasta, rice, or with warm crusty bread on the side.
There was a Wednesday night when the power went out and I finished cooking these meatballs by candlelight, and somehow the dim kitchen made the whole meal taste better.
Lighter Swaps That Actually Work
Ground turkey or chicken makes a perfectly good meatball, though you will want to add an extra drizzle of olive oil to the pan since lean meat sticks more easily. Coconut milk stands in for heavy cream surprisingly well if dairy is off the table, and gluten free breadcrumbs work without any texture compromise I can notice.
Wine and Serving Pairings
A medium bodied red like Chianti is the classic move and honestly hard to beat, but a cold glass of rosé in summer does the job too. If you want heat, a pinch of chili flakes in the sauce wakes up the tomatoes without overpowering the cream.
Storage and Reheating Advice
Leftovers keep for three days in the fridge and the sauce actually improves overnight as the flavors settle together. Reheat gently on the stove with a splash of broth so the cream does not break.
- Freeze meatballs and sauce together in a sealed container for up to three months.
- Thaw overnight in the fridge before reheating for the best texture.
- Always taste and reseason after reheating because cold dulls salt perception.
Some recipes become part of your rotation and some become part of your life. This one earned a permanent spot on my fridge.
Recipe FAQs
- → Can I use ground turkey instead of beef?
-
Yes, ground turkey or chicken works well for a lighter version. Keep in mind the meatballs may be slightly less juicy, so avoid overmixing and consider adding a tablespoon of olive oil to the mixture.
- → How do I prevent meatballs from falling apart?
-
The breadcrumbs, egg, and a gentle mixing hand are key. Combine ingredients until just mixed—overworking the meat makes them tough. Chilling the shaped meatballs for 15 minutes before browning also helps them hold together.
- → Can I make the sauce dairy-free?
-
Absolutely. Substitute the heavy cream with full-fat coconut milk and use a dairy-free Parmesan alternative. The texture will be slightly different but still delicious and creamy.
- → What pasta pairs best with this dish?
-
Long pasta like spaghetti, fettuccine, or pappardelle works beautifully, as the sauce clings to the strands. Short shapes like penne or rigatoni are also great—their ridges grab onto the creamy sauce perfectly.
- → Can I freeze leftover meatballs and sauce?
-
Yes, they freeze wonderfully for up to 3 months. Let cool completely, then store in an airtight container. Thaw overnight in the refrigerator and reheat gently on the stovetop over low heat.
- → Why add sugar to the tomato sauce?
-
A small amount of sugar balances the natural acidity of crushed tomatoes. It's optional—if your tomatoes are naturally sweet or you prefer a tangier sauce, feel free to skip it.