There’s something deeply comforting about a big bowl of spaghetti and meatballs. This classic recipe features tender, savory meatballs simmered in a rich tomato sauce, served over al dente pasta. It’s a slow-simmered affair that rewards your patience with incredible flavor.
Nothing beats a great Spaghetti and Meatballs. Whether you're a fan of Dinner Ideas or want to try something from our Chicken Thigh Recipes selection, keep scrolling!
Why You’ll Love This Spaghetti and Meatballs
- Flavorful & comforting: Slow-simmered tomato sauce and seasoned meatballs create a harmony of tastes.
- Tender, juicy meatballs: A mix of meats and a panade ensures they stay moist and never tough.
- Fantastic leftovers: Flavors meld and deepen overnight for an even better next-day meal.
- Crowd-pleasing classic: Universally loved by all ages, perfect for family dinners or gatherings.
Ingredients & Tools
For the Meatballs:
- 450 g ground beef (80/20 blend for best flavor)
- 225 g ground pork
- 100 g breadcrumbs (panko work great)
- 120 ml whole milk
- 1 large egg
- 75 g grated Parmesan cheese
- 3 cloves garlic, minced
- 2 tbsp fresh parsley, finely chopped
- 1 tsp dried oregano
- 1/2 tsp salt
- 1/4 tsp black pepper
- 2 tbsp olive oil (for browning)
For the Sauce:
- 1 medium onion, finely diced
- 4 cloves garlic, minced
- 2 (800 g) cans crushed tomatoes
- 1 (150 g) can tomato paste
- 480 ml beef or chicken broth
- 2 tsp dried basil
- 1 tsp sugar
- 2 bay leaves
- Salt and pepper to taste
For Serving:
- 450 g spaghetti
- Fresh basil for garnish
- Extra Parmesan cheese for serving
Tools: Large pot or Dutch oven for sauce, large skillet for browning meatballs, large pot for pasta, mixing bowl, baking sheet (optional for baking meatballs), tongs.
Notes: Don’t skip the panade—it’s the secret to keeping your meatballs from getting tough. And using a mix of pork and beef gives you a much more complex, satisfying flavor than just one type of meat.
Nutrition (per serving)
| Calories: | 680 kcal |
| Protein: | 34 g |
| Fat: | 22 g |
| Carbs: | 85 g |
| Fiber: | 7 g |
Serves: 6 | Prep Time: 25 minutes | Cook Time: 1 hour 15 minutes | Total Time: 1 hour 40 minutes
Before You Start: Tips & Ingredient Notes
- Don’t use lean meat. A bit of fat (like an 80/20 beef blend) is crucial for juicy, flavorful meatballs. Lean meat will result in a drier texture.
- Why a panade? The breadcrumb and milk mixture acts as a binder and keeps the meatballs incredibly tender. It prevents the proteins from tightening up too much and squeezing out all the moisture.
- Use canned tomatoes you trust. The quality of your tomatoes makes a huge difference in the final sauce. I prefer San Marzano-style crushed tomatoes for their sweet, less acidic flavor.
- Grate your own Parmesan. The pre-grated stuff in bags often contains anti-caking agents that can make your sauce a little grainy. A block of Parmigiano-Reggiano grated fresh is worth the extra minute.
- Don’t rush the simmer. Letting the sauce bubble away gently for at least 45 minutes allows the flavors to meld and the sauce to thicken beautifully.
How to Make Spaghetti and Meatballs
Step 1: Make the Panade and Meatball Mixture. In a large bowl, combine the breadcrumbs and milk. Let it sit for about 5 minutes until the breadcrumbs have absorbed all the milk and formed a paste. This is your panade—the key to tenderness. To the same bowl, add the ground beef, ground pork, egg, grated Parmesan, minced garlic, parsley, oregano, salt, and pepper. Now, here’s the important part: use your hands to mix everything together. It’s messy, but it’s the only way to ensure everything is evenly distributed without overworking the meat. Mix just until combined—you’ll notice the texture becomes uniform.
Step 2: Form and Brown the Meatballs. With lightly oiled hands, roll the meat mixture into balls about 4 cm (1.5 inches) in diameter—you should get around 18-20 meatballs. Heat the olive oil in a large skillet over medium-high heat. Working in batches to avoid crowding the pan, brown the meatballs on all sides. You’re not cooking them through here, just creating a beautiful, flavorful crust. This should take about 6-8 minutes per batch. Transfer the browned meatballs to a clean plate; they’ll finish cooking in the sauce.
Step 3: Build the Sauce. In the same large pot or Dutch oven you’ll use for the sauce, add the diced onion (you can use a little of the meatball drippings if needed). Cook over medium heat until softened and translucent, about 5-7 minutes. Add the minced garlic and cook for another minute until fragrant. Stir in the tomato paste and cook for 2 minutes—this deepens its flavor. Then, pour in the crushed tomatoes, broth, dried basil, sugar, and bay leaves. Give it a good stir, scraping up any browned bits from the bottom of the pot. Those bits are pure flavor!
Step 4: Simmer the Meatballs in the Sauce. Carefully lower the browned meatballs into the simmering sauce. Gently shake the pot to submerge them rather than stirring, which can break them apart. Reduce the heat to low, cover the pot, and let it simmer gently for at least 45 minutes. You’ll notice the sauce will darken in color and thicken slightly. The meatballs will cook through and become incredibly tender as they soak up the sauce’s flavor.
Step 5: Cook the Pasta. About 15 minutes before the sauce is done, bring a large pot of generously salted water to a rolling boil. Add the spaghetti and cook according to package directions until al dente. Reserve about a cup of the starchy pasta water before draining. This water is liquid gold for adjusting your sauce later.
Step 6: Combine and Serve. Add the drained spaghetti directly to the pot with the sauce and meatballs. Use tongs to toss everything together, adding a splash of the reserved pasta water if the sauce seems too thick—it will help the sauce cling to the pasta beautifully. Remove the bay leaves. Serve immediately in warm bowls, topped with a generous sprinkle of fresh Parmesan cheese and a few leaves of fresh basil.
Storage & Freshness Guide
- Fridge: Cool completely and store in an airtight container for up to 4 days.
- Freezer: Freeze sauce and meatballs (without pasta) in a sealed container for up to 3 months.
- Reviving: Reheat gently on the stovetop with a splash of water or broth to loosen the sauce.
Serving Suggestions
Complementary Dishes
- A crisp Caesar salad — The sharp, garlicky dressing and crunchy romaine provide a refreshing contrast to the rich, hearty pasta.
- Garlic bread with melted mozzarella — It’s perfect for sopping up every last bit of that incredible tomato sauce from your plate.
- Sautéed garlic spinach — A simple, healthy side that adds a pop of green and balances the meal without competing for attention.
Drinks
- A medium-bodied Chianti — The classic pairing; its bright acidity and cherry notes cut through the richness of the tomatoes and meat perfectly.
- Sparkling water with lemon — For a non-alcoholic option, the bubbles and citrus are wonderfully palate-cleansing between bites.
- A hoppy IPA — The bitterness of the beer stands up well to the savory meat and sweet tomato sauce, creating a really satisfying combination.
Something Sweet
- Tiramisu — The coffee-soaked ladyfingers and light mascarpone cream are a classic Italian finish that feels light yet indulgent.
- Lemon sorbet — Its bright, clean, and icy-cold texture is the perfect reset after a rich and savory main course.
- Panna cotta with a berry coulis — The silky, smooth vanilla custard is simple, elegant, and not too heavy, making it an ideal way to end the meal.
Top Mistakes to Avoid
- Mistake: Overmixing the meatball mixture. This develops the gluten in the bread and tightens the meat proteins, leading to dense, tough, hockey-puck-like meatballs. Mix with your hands just until combined.
- Mistake: Skipping the browning step. I’ve been tempted to just plop raw meatballs into the sauce to save time, but you miss out on the deep, caramelized flavor that the Maillard reaction creates. It’s a crucial step for taste.
- Mistake: Boiling the sauce instead of simmering. A rolling boil will make your sauce taste bitter and can cause the meatballs to break apart. A gentle, lazy bubble is what you’re aiming for.
- Mistake: Not salting your pasta water enough. The pasta water should taste like the sea. This is your one and only chance to season the pasta itself from the inside out, which makes a huge difference in the final dish.
Expert Tips
- Tip: Chill your meatball mixture. After mixing, cover the bowl and pop it in the fridge for 20-30 minutes. This firms up the fat, making the meatballs much easier to roll and helping them hold their shape while cooking.
- Tip: Bake your meatballs for a hands-off approach. If you don’t want to stand over a skillet, arrange the formed meatballs on a parchment-lined baking sheet and bake at 200°C (400°F) for 15-20 minutes until browned. They’ll be less crusty but still delicious.
- Tip: Add a Parmesan rind to the sauce. If you have a rind leftover from a block of Parmesan, toss it into the sauce as it simmers. It will melt slightly, adding an incredible depth of umami and richness.
- Tip: Let the finished sauce rest. If you have the time, turn off the heat and let the pot sit, covered, for 15-20 minutes before serving. This allows the fat to redistribute and the flavors to settle, resulting in a more harmonious sauce.
FAQs
Can I make the meatballs ahead of time?
Absolutely! You can prepare the meatball mixture, cover it tightly, and refrigerate it for up to 24 hours before cooking. You can also form and brown the meatballs a day ahead, then simply reheat them in the sauce when you’re ready to serve. This actually makes the process much smoother for a dinner party.
Can I freeze spaghetti and meatballs?
Yes, it freezes wonderfully. Let the entire dish (or just the sauce and meatballs) cool completely, then transfer to a freezer-safe container. It will keep for up to 3 months. Thaw overnight in the refrigerator and reheat gently on the stovetop, adding a little water or broth to loosen the sauce if needed.
What can I use instead of pork?
No problem! You can use all beef, or for a lighter option, try a half-and-half mix of beef and ground turkey or chicken. Just be aware that leaner poultry meats can dry out more easily, so don’t skip the panade and avoid overcooking.
My sauce is too acidic. How can I fix it?
A pinch of sugar is your best friend here—it balances the acidity of the tomatoes without making the sauce taste sweet. Start with a teaspoon and taste. If it’s still too sharp, a small grated carrot simmered in the sauce can also add a subtle sweetness and help mellow it out.
Why is my sauce watery?
This usually happens if the sauce hasn’t simmered long enough to reduce, or if you’ve added too much liquid (like broth) at the beginning. The fix is simple: just continue to simmer the sauce uncovered until it reaches your desired thickness. Remember, the pasta will also absorb some of the sauce when you combine them.
Spaghetti And Meatballs
Make the best homemade Spaghetti and Meatballs with tender, juicy meatballs in a rich tomato sauce. A classic family favorite recipe. Cook this comforting dish tonight!
Ingredients
For the Meatballs
-
450 g ground beef (80/20 blend for best flavor)
-
225 g ground pork
-
100 g breadcrumbs (panko work great)
-
120 ml whole milk
-
1 large egg
-
75 g grated Parmesan cheese
-
3 cloves garlic (minced)
-
2 tbsp fresh parsley (finely chopped)
-
1 tsp dried oregano
-
1/2 tsp salt
-
1/4 tsp black pepper
-
2 tbsp olive oil (for browning)
For the Sauce
-
1 medium onion (finely diced)
-
4 cloves garlic (minced)
-
2 cans crushed tomatoes (800 g each)
-
1 can tomato paste (150 g)
-
480 ml beef or chicken broth
-
2 tsp dried basil
-
1 tsp sugar
-
2 bay leaves
-
Salt and pepper (to taste)
For Serving
-
450 g spaghetti
-
Fresh basil (for garnish)
-
Extra Parmesan cheese (for serving)
Instructions
-
In a large bowl, combine the breadcrumbs and milk. Let it sit for about 5 minutes until the breadcrumbs have absorbed all the milk and formed a paste. This is your panade—the key to tenderness. To the same bowl, add the ground beef, ground pork, egg, grated Parmesan, minced garlic, parsley, oregano, salt, and pepper. Now, here’s the important part: use your hands to mix everything together. It’s messy, but it’s the only way to ensure everything is evenly distributed without overworking the meat. Mix just until combined—you’ll notice the texture becomes uniform.01
-
With lightly oiled hands, roll the meat mixture into balls about 4 cm (1.5 inches) in diameter—you should get around 18-20 meatballs. Heat the olive oil in a large skillet over medium-high heat. Working in batches to avoid crowding the pan, brown the meatballs on all sides. You’re not cooking them through here, just creating a beautiful, flavorful crust. This should take about 6-8 minutes per batch. Transfer the browned meatballs to a clean plate; they’ll finish cooking in the sauce.02
-
In the same large pot or Dutch oven you’ll use for the sauce, add the diced onion (you can use a little of the meatball drippings if needed). Cook over medium heat until softened and translucent, about 5-7 minutes. Add the minced garlic and cook for another minute until fragrant. Stir in the tomato paste and cook for 2 minutes—this deepens its flavor. Then, pour in the crushed tomatoes, broth, dried basil, sugar, and bay leaves. Give it a good stir, scraping up any browned bits from the bottom of the pot. Those bits are pure flavor!03
-
Carefully lower the browned meatballs into the simmering sauce. Gently shake the pot to submerge them rather than stirring, which can break them apart. Reduce the heat to low, cover the pot, and let it simmer gently for at least 45 minutes. You’ll notice the sauce will darken in color and thicken slightly. The meatballs will cook through and become incredibly tender as they soak up the sauce’s flavor.04
-
About 15 minutes before the sauce is done, bring a large pot of generously salted water to a rolling boil. Add the spaghetti and cook according to package directions until al dente. Reserve about a cup of the starchy pasta water before draining. This water is liquid gold for adjusting your sauce later.05
-
Add the drained spaghetti directly to the pot with the sauce and meatballs. Use tongs to toss everything together, adding a splash of the reserved pasta water if the sauce seems too thick—it will help the sauce cling to the pasta beautifully. Remove the bay leaves. Serve immediately in warm bowls, topped with a generous sprinkle of fresh Parmesan cheese and a few leaves of fresh basil.06
Not what you're looking for?



