Best Spaghetti and Meatballs Recipe

There’s nothing quite like a big plate of spaghetti and meatballs when you want a dinner that feels like a warm hug. I’ve made this recipe dozens of times over the years, tweaking it until the meatballs come out tender but never mushy, and the sauce develops real depth without having to simmer all day.

The meatballs are nicely seasoned but not overpowering, letting the meat flavors shine through. While it takes about an hour start to finish, most of that time is hands-off while everything simmers. It’s perfect for Sunday dinners or when you want leftovers for the week ahead. Plus, the recipe scales up easily if you’re feeding a crowd.

What you need for Best Spaghetti and Meatballs

Ingredients You’ll Need For meatballs
  • 2 pounds ground beef (80/20)
  • cup Italian-seasoned breadcrumb
  • 1/2 cup milk
  • 2 eggs
  • 1/2 cup grated Parmesan cheese
  • 4 cloves garlic, minced
  • 1 tablespoon dried parsley
  • 1 teaspoon salt
  • 1/2 teaspoon black pepper
  • 1/4 cup olive oil (for frying)
Ingredients You’ll Need For sauce
  • 2 (28 oz) cans crushed tomatoes
  • 1 medium onion, finely diced
  • 6 cloves garlic, minced
  • 3 tablespoons olive oil
  • 2 tablespoons tomato paste
  • 1 tablespoon dried basil
  • 1 tablespoon dried oregano
  • 2 bay leaves
  • 1 teaspoon sugar
  • Salt and pepper to taste
Ingredients You’ll Need For pasta
  • 1 pound spaghetti
  • Salt for pasta water
Ingredients You’ll Need For serving
  • Fresh basil leaves
  • Extra grated Parmesan cheese

How to make Best Spaghetti and Meatballs

1. Start with the sauce since it needs time to develop flavor. Heat 3 tablespoons olive oil in a large pot over medium heat. Add your diced onion and cook until it becomes soft and translucent, about 5-6 minutes. You’ll know it’s ready when the onions are slightly golden at the edges and smell sweet.

2. Add the minced garlic to the onions and cook for about 1 minute, stirring constantly. When you can really smell the garlic but before it starts to brown, add the tomato paste. Cook the paste for about 2 minutes, stirring frequently – this helps caramelize it and brings out a deeper flavor.

3. Pour in both cans of crushed tomatoes, then add the basil, oregano, bay leaves, and sugar. The sugar helps balance the acidity of the tomatoes. Bring to a gentle simmer, then reduce heat to low and let it bubble away gently while you make the meatballs. Give it a stir occasionally to prevent sticking.

4. For the meatballs, pour the milk over the breadcrumbs in a large bowl and let them soak for 5 minutes – this keeps your meatballs tender. Meanwhile, mix the eggs, Parmesan, garlic, parsley, salt, and pepper in another bowl.

5. Add the ground beef to the soaked breadcrumbs, then pour in the egg mixture. Mix everything together with your hands just until combined – overmixing will make tough meatballs. The mixture should feel soft but hold together when rolled.

6. Roll the meat mixture into golf ball-sized meatballs (about 2 tablespoons each). Slightly wet hands make this easier and prevent sticking. You should get around 24 meatballs.

7. Heat 1/4 cup olive oil in a large skillet over medium-high heat. When the oil shimmers, add meatballs in batches – don’t crowd the pan. Brown them for about 2-3 minutes per side until they develop a nice brown crust but aren’t cooked through.

8. Transfer the browned meatballs directly into your simmering sauce. Let them cook in the sauce for at least 30 minutes, or up to an hour for even better flavor. The sauce should be gently bubbling – if it’s splattering, turn down the heat.

9. About 20 minutes before serving, bring a large pot of water to a rolling boil. Add enough salt so it tastes like sea water (about 2 tablespoons). Add your spaghetti and cook until al dente – usually 1 minute less than the package directions. Reserve a cup of pasta water before draining.

10. Drain the pasta and return it to the pot. Ladle in enough sauce to coat the noodles well, adding a splash of pasta water if needed to help the sauce stick to the pasta. The sauce should coat the back of a spoon but not be soupy.

11. Serve the pasta in bowls, topped with meatballs and extra sauce. Garnish with torn fresh basil leaves and offer extra Parmesan at the table. The meatballs should be tender enough to cut with just your fork.

This recipe serves 6-8 people generously, and any leftover sauce and meatballs freeze beautifully for up to 3 months.

🔍 Recipe Notes & Tips

  • Don’t skip browning the meatballs – this adds major flavor
  • Wet your hands when rolling meatballs to prevent sticking
  • Use 80/20 ground beef for juicier meatballs
  • Fresh garlic > garlic powder here
  • No fresh basil? Use 1 tsp dried in sauce
  • Grate Parm yourself – pre-grated doesn’t melt as well
  • Keep sauce barely simmering – not boiling!

🍽️ Serving Suggestions

  • Drinks: Medium-bodied Italian red (Chianti or Sangiovese)
  • Sides:
    – Simple green salad with lemon vinaigrette
    – Garlic bread or crusty Italian bread
    – Sautéed broccoli rabe for traditional Italian vibes

🎯 Make it Work for

  • Casual dinner: Serve family-style in big bowls
    Fancy dinner: Plate individually with fresh basil garnish
    Make-ahead: Brown meatballs & make sauce day before
    Party: Keep warm in slow cooker on low
    Kids: Make smaller meatballs, cut spaghetti into shorter lengths

📦 Storage & Leftovers

  • Fridge: 3-4 days in airtight container
  • Freezer: Sauce & meatballs freeze great for 3 months
  • Reheat: Microwave or stovetop with splash of water
  • Don’t freeze cooked pasta – make fresh
  • Gets better next day as flavors develop
Best Spaghetti and Meatballs Recipe

Best Spaghetti and Meatballs Recipe

Juicy homemade meatballs simmered in a rich tomato sauce, served over perfectly cooked spaghetti. A classic Italian comfort dish bursting with flavor!
Prep Time 40 minutes
Cook Time 45 minutes
Total Time 1 hour 25 minutes
Servings 24 meatballs

Ingredients
  

Ingredients You’ll Need For meatballs

  • 2 pounds ground beef 80/20
  • cup Italian-seasoned breadcrumb
  • 1/2 cup milk
  • 2 eggs
  • 1/2 cup grated Parmesan cheese
  • 4 cloves garlic minced
  • 1 tablespoon dried parsley
  • 1 teaspoon salt
  • 1/2 teaspoon black pepper
  • 1/4 cup olive oil for frying

Ingredients You’ll Need For sauce

  • 2 28 oz cans crushed tomatoes
  • 1 medium onion finely diced
  • 6 cloves garlic minced
  • 3 tablespoons olive oil
  • 2 tablespoons tomato paste
  • 1 tablespoon dried basil
  • 1 tablespoon dried oregano
  • 2 bay leaves
  • 1 teaspoon sugar
  • Salt and pepper to taste

Ingredients You’ll Need For pasta

  • 1 pound spaghetti
  • Salt for pasta water

Ingredients You’ll Need For serving

  • Fresh basil leaves
  • Extra grated Parmesan cheese

Instructions
 

  • Start with the sauce since it needs time to develop flavor. Heat 3 tablespoons olive oil in a large pot over medium heat. Add your diced onion and cook until it becomes soft and translucent, about 5-6 minutes. You’ll know it’s ready when the onions are slightly golden at the edges and smell sweet.
  • Add the minced garlic to the onions and cook for about 1 minute, stirring constantly. When you can really smell the garlic but before it starts to brown, add the tomato paste. Cook the paste for about 2 minutes, stirring frequently – this helps caramelize it and brings out a deeper flavor.
  • Pour in both cans of crushed tomatoes, then add the basil, oregano, bay leaves, and sugar. The sugar helps balance the acidity of the tomatoes. Bring to a gentle simmer, then reduce heat to low and let it bubble away gently while you make the meatballs. Give it a stir occasionally to prevent sticking.
  • For the meatballs, pour the milk over the breadcrumbs in a large bowl and let them soak for 5 minutes – this keeps your meatballs tender. Meanwhile, mix the eggs, Parmesan, garlic, parsley, salt, and pepper in another bowl.
  • Add the ground beef to the soaked breadcrumbs, then pour in the egg mixture. Mix everything together with your hands just until combined – overmixing will make tough meatballs. The mixture should feel soft but hold together when rolled.
  • Roll the meat mixture into golf ball-sized meatballs (about 2 tablespoons each). Slightly wet hands make this easier and prevent sticking. You should get around 24 meatballs.
  • Heat 1/4 cup olive oil in a large skillet over medium-high heat. When the oil shimmers, add meatballs in batches – don’t crowd the pan. Brown them for about 2-3 minutes per side until they develop a nice brown crust but aren’t cooked through.
  • Transfer the browned meatballs directly into your simmering sauce. Let them cook in the sauce for at least 30 minutes, or up to an hour for even better flavor. The sauce should be gently bubbling – if it’s splattering, turn down the heat.
  • About 20 minutes before serving, bring a large pot of water to a rolling boil. Add enough salt so it tastes like sea water (about 2 tablespoons). Add your spaghetti and cook until al dente – usually 1 minute less than the package directions. Reserve a cup of pasta water before draining.
  • Drain the pasta and return it to the pot. Ladle in enough sauce to coat the noodles well, adding a splash of pasta water if needed to help the sauce stick to the pasta. The sauce should coat the back of a spoon but not be soupy.
  • Serve the pasta in bowls, topped with meatballs and extra sauce. Garnish with torn fresh basil leaves and offer extra Parmesan at the table. The meatballs should be tender enough to cut with just your fork.

Similar Posts