These tender, juicy meatballs are browned to perfection then gently simmered in a luscious creamy tomato and basil sauce. The combination of ground beef, Parmesan, and fresh herbs creates incredibly flavorful meatballs that pair beautifully with the rich, velvety sauce.
Ready in under an hour, this Italian-American classic is perfect for busy weeknights yet impressive enough for entertaining. Serve over pasta, rice, or with crusty bread to soak up every last drop of sauce.
The smell of garlic hitting olive oil on a Tuesday evening changed my entire mood that week. I had been surviving on toast and bad takeout for days, and something about browning meatballs in my cramped apartment kitchen felt like a small act of self repair. The cream swirling into crushed tomatoes turned the whole pan into something that looked far too elegant for a random weeknight. That dish became my unofficial therapy, and I have made it at least once a month since.
I cooked this for my neighbor Clara once when she was going through a rough patch, and she sat at my kitchen counter eating straight from the pan with a chunk of bread. We did not say much, just let the food do the talking, and she later told me it was the first real meal she had enjoyed in weeks. That is the quiet power of creamy tomato sauce and a good meatball.
Ingredients
- 500 g ground beef (or beef and pork mix): A blend of beef and pork gives the meatballs more richness, but straight beef works beautifully too.
- 1/2 cup breadcrumbs: These keep the meatballs tender and help them hold together without getting dense.
- 1/4 cup grated Parmesan cheese: Adds a salty, nutty depth right inside the meat mixture.
- 1 large egg: The binding agent that brings everything together gently.
- 2 cloves garlic, minced: Fresh garlic makes a noticeable difference here, so skip the jarred version if you can.
- 1/4 cup milk: Softens the breadcrumbs so the meatballs stay juicy rather than dry.
- 1/2 tsp salt and 1/4 tsp black pepper: Seasoning the meat mixture itself is essential for flavor throughout.
- 2 tbsp fresh basil, finely chopped (or 1 tsp dried): Basil inside the meatballs adds an herbal note that pairs perfectly with the tomato sauce.
- 2 tbsp olive oil: Used for browning the meatballs and sauteing the aromatics for the sauce.
- 1 small onion, finely chopped: The sweetness of cooked onion forms the backbone of the sauce.
- 1 can (400 g) crushed tomatoes: A good quality canned tomato is the foundation, so pick a brand you trust.
- 1/2 cup heavy cream: This is what transforms a standard tomato sauce into something velvety and indulgent.
- 1/2 cup chicken or vegetable broth: Thins the sauce slightly and adds another layer of savory flavor.
- 1 tsp sugar (optional): A small pinch rounds out the acidity of the tomatoes without making anything sweet.
- 1/3 cup fresh basil leaves, chopped: Added near the end so the bright, peppery flavor stays vibrant.
- 1/4 cup grated Parmesan cheese: Stirred into the sauce for extra body and umami richness.
- Cooked pasta, rice, or crusty bread for serving: Pick whatever feels right, because everything works with this sauce.
Instructions
- Mix and shape the meatballs:
- In a large bowl, combine the ground meat, breadcrumbs, Parmesan, egg, minced garlic, milk, salt, pepper, and chopped basil. Use your hands and mix just until everything is evenly distributed, then gently roll into about 16 golf ball sized meatballs. Overmixing makes them tough, so a light touch is your best friend here.
- Brown the meatballs:
- Heat olive oil in a large skillet over medium heat and add the meatballs, turning them every minute or so to get a nice golden crust on all sides. After about 6 minutes, remove them to a plate and resist the urge to cook them through, because the sauce will handle the rest.
- Build the sauce base:
- In the same skillet with all those beautiful browned bits, add the chopped onion and saute until softened and translucent, about 3 to 4 minutes. Toss in the garlic and stir for 30 seconds until you can smell it bloom, then pour in the crushed tomatoes and broth.
- Simmer and add cream:
- Stir in the salt, pepper, and sugar if you are using it, and let the sauce simmer for 5 minutes so it begins to reduce. Pour in the heavy cream and Parmesan, stirring until the sauce turns a gorgeous sunset orange color, then fold in the chopped basil.
- Finish the meatballs in the sauce:
- Nestle the browned meatballs back into the skillet, spooning sauce over the top so they are partially submerged. Simmer uncovered on low heat for 15 to 20 minutes, gently turning the meatballs a few times, until they are cooked through and the sauce has thickened to a silky consistency.
- Taste and serve:
- Give the sauce a final taste and adjust salt or pepper as needed, then garnish with extra fresh basil leaves. Serve over pasta, rice, or simply with torn crusty bread for soaking up every last drop.
There is something deeply satisfying about watching meatballs gently bob in a simmering pot of creamy tomato sauce, knowing that dinner is almost ready and the kitchen smells incredible. It is the kind of meal that makes people linger at the table a little longer, scraping the last of the sauce with whatever bread is left.
Making It Your Own
Ground turkey or chicken works well if you want a lighter version, though you may want to add an extra drizzle of olive oil to keep things moist. A pinch of chili flakes in the sauce transforms the whole dish into something with a gentle, warming kick that cuts through the richness beautifully. Coconut milk can replace the heavy cream for a dairy free version, and gluten free breadcrumbs work seamlessly if that is what you need.
What to Serve Alongside
A simple green salad with a sharp vinaigrette balances the richness of the cream sauce perfectly. A glass of Chianti or any medium bodied red wine alongside turns a casual dinner into something that feels like an occasion without any extra effort.
Storing and Reheating
Leftovers keep beautifully in the fridge for up to three days, and the sauce actually thickens and tastes better the next day. Reheat gently on the stove over low heat, adding a splash of broth or water to loosen the sauce if it has gotten too thick.
- Freeze the meatballs and sauce together in an airtight container for up to two months for a ready made meal.
- Thaw overnight in the fridge before reheating for the best texture.
- Always taste and reseason after reheating, because cold dulls flavors slightly.
This is the kind of recipe that earns a permanent spot in your rotation, not because it is fancy but because it delivers comfort every single time. Make it once, and you will find yourself reaching for it on the nights when nothing else sounds quite right.
Common Questions
- → Can I use ground turkey or chicken 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 drizzle of olive oil to the mixture for moisture.
- → How do I prevent meatballs from falling apart?
-
Don't skip the breadcrumbs and egg — they act as binders. Mix the ingredients until just combined without overworking the meat. Browning the meatballs in the skillet before simmering also helps them hold their shape.
- → Can I make this dairy-free?
-
Absolutely. Substitute the heavy cream with full-fat coconut milk, use a dairy-free Parmesan alternative, and opt for gluten-free breadcrumbs. The sauce will still be rich and flavorful with a slightly different flavor profile.
- → What should I serve with these meatballs?
-
They pair wonderfully with cooked pasta like spaghetti or penne, over steamed rice, or alongside crusty bread for dipping. A simple side salad and a glass of Chianti or medium-bodied red wine complete the meal perfectly.
- → Can I freeze the meatballs and sauce?
-
Yes, let everything cool completely, then transfer to an airtight container. Freeze for up to 3 months. Thaw overnight in the refrigerator and reheat gently on the stovetop, adding a splash of broth if the sauce has thickened too much.
- → How long do leftovers last in the fridge?
-
Store leftovers in an airtight container in the refrigerator for up to 3 days. Reheat gently on the stovetop over low heat or in the microwave, stirring occasionally to ensure even warming.