Go Back
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.