Meatballs in Rich Tomato Sauce represents the heart of Italian-American comfort cooking, where tender, perfectly seasoned meatballs nestle in a velvety tomato sauce that’s been slowly simmered to perfection. This beloved dish combines ground beef, pork, and veal into succulent meatballs that are first browned to develop a beautiful crust, then gently braised in a sauce made from San Marzano tomatoes, fresh herbs, and aromatic vegetables. The magic happens during the slow cooking process, where the meatballs absorb the rich flavors of the sauce while releasing their own savory juices, creating a harmonious blend that epitomizes home-style Italian cooking. Whether served over al dente spaghetti, tucked into crusty submarine rolls, or enjoyed on their own with fresh bread for dipping, this dish delivers the kind of satisfying, soul-warming experience that brings families together around the dinner table.
Serving Quantity
This recipe serves 6-8 people generously and makes approximately 24 medium-sized meatballs with plenty of sauce.
Ingredients for the Meatballs
- 1 pound ground beef (80/20 blend)
- 1/2 pound ground pork
- 1/2 pound ground veal (or substitute with more beef)
- 1 cup fresh breadcrumbs
- 1/2 cup whole milk
- 1/2 cup grated Parmesan cheese
- 2 large eggs, beaten
- 1/4 cup fresh parsley, finely chopped
- 3 cloves garlic, minced
- 1 teaspoon salt
- 1/2 teaspoon black pepper
- 1/4 teaspoon nutmeg
- 2 tablespoons olive oil for browning
Ingredients for the Rich Tomato Sauce
- 2 tablespoons olive oil
- 1 large onion, finely diced
- 4 cloves garlic, minced
- 1/2 cup red wine
- 2 cans (28 ounces each) San Marzano tomatoes, crushed by hand
- 2 tablespoons tomato paste
- 1 teaspoon sugar
- 1 teaspoon salt
- 1/2 teaspoon black pepper
- 1 bay leaf
- 1 sprig fresh thyme
- 1/4 cup fresh basil leaves, torn
- 2 tablespoons fresh oregano (or 2 teaspoons dried)
Preparing the Perfect Meatball Mixture
Start by soaking the fresh breadcrumbs in milk for 10 minutes until they become completely saturated. This mixture, called a panade, is the secret to incredibly tender meatballs that stay moist during cooking. While the breadcrumbs soak, grate the Parmesan cheese and finely chop the parsley.
In a large mixing bowl, gently combine the ground meats using your hands or a fork. Avoid overmixing, which can make the meatballs tough. Add the soaked breadcrumbs along with any remaining milk, then incorporate the beaten eggs, Parmesan cheese, minced garlic, parsley, salt, pepper, and nutmeg.
Mix everything together gently but thoroughly, using your hands to distribute the ingredients evenly. The mixture should hold together when squeezed but still feel light and not compacted. If the mixture seems too wet, add a few more breadcrumbs. If too dry, add a splash of milk.
Shaping and Browning the Meatballs
With wet hands to prevent sticking, roll the meat mixture into balls about 1.5 inches in diameter. Place them on a large plate or baking sheet as you work. Consistent sizing ensures even cooking, so take your time with this step.
Heat olive oil in a large, heavy-bottomed Dutch oven or deep skillet over medium-high heat. Working in batches to avoid overcrowding, brown the meatballs on all sides, turning them carefully with tongs. This should take about 8-10 minutes total per batch.
The meatballs don’t need to be fully cooked at this stage – you’re just developing a beautiful golden-brown crust that adds flavor and helps them hold their shape. Remove the browned meatballs to a plate and set aside while you prepare the sauce.
Building the Rich Tomato Sauce
In the same Dutch oven with the flavorful browned bits from the meatballs, heat 2 tablespoons of olive oil over medium heat. Add the diced onion and cook for 5-6 minutes, stirring occasionally, until softened and translucent. The onions will pick up all those delicious caramelized flavors from the bottom of the pan.
Add the minced garlic and cook for another minute until fragrant. Pour in the red wine and let it simmer for 2-3 minutes, scraping up any browned bits from the bottom of the pan. This deglazing process adds incredible depth to the sauce.
Stir in the tomato paste and cook for 1-2 minutes until it darkens slightly and becomes aromatic. Add the crushed San Marzano tomatoes along with their juices, using your hands to break them into smaller pieces as you add them to the pot.
Developing Deep Flavors
Season the sauce with sugar, salt, pepper, and add the bay leaf and fresh thyme sprig. The sugar helps balance the acidity of the tomatoes and brings out their natural sweetness. Bring the sauce to a gentle simmer, then reduce the heat to low.
Let the sauce simmer uncovered for 20-25 minutes, stirring occasionally, until it thickens and the flavors concentrate. The sauce should coat the back of a spoon and have a rich, deep red color. Taste and adjust seasoning as needed.
Braising the Meatballs
Carefully nestle the browned meatballs back into the simmering tomato sauce. They should be mostly submerged in the sauce. Cover the pot and continue cooking on low heat for 25-30 minutes, turning the meatballs gently once halfway through cooking.
During this braising process, the meatballs will finish cooking while absorbing the flavors of the sauce. The sauce will also benefit from the savory juices released by the meatballs, creating a perfect symbiotic relationship.
Final Seasoning and Fresh Herbs
Remove the bay leaf and thyme sprig from the sauce. Stir in the torn fresh basil leaves and oregano during the last 5 minutes of cooking. The fresh herbs should be bright and aromatic, not overcooked.
Taste the sauce one final time and adjust seasoning with salt, pepper, or a pinch more sugar if needed. The sauce should be rich, well-balanced, and cling beautifully to the meatballs.
Serving Suggestions
Serve the meatballs and sauce immediately over al dente spaghetti, penne, or your favorite pasta. Don’t forget to provide plenty of freshly grated Parmesan cheese and torn basil for garnish.
For a classic meatball submarine sandwich, nestle 3-4 meatballs in a crusty Italian roll, top with sauce and mozzarella cheese, then broil until bubbly. The dish also works beautifully over creamy polenta or with crusty Italian bread for dipping.
Storage and Make-Ahead Tips
This dish actually improves in flavor after a day, making it perfect for meal prep or entertaining. Store covered in the refrigerator for up to 4 days, or freeze for up to 3 months.
When reheating, do so gently over low heat, adding a splash of broth or water if the sauce has thickened too much. The meatballs can even be made and browned a day ahead, then finished in the sauce when ready to serve.
