Homemade Spaghetti and Meatballs with Tomato Sauce

Prep: 20 minCook: 45 min8 servingsmediumItalian-American
Homemade Spaghetti and Meatballs with Tomato Sauce

Classic spaghetti and meatballs combines tender, herb-infused meatballs simmered in a rich crushed tomato sauce with aromatic garlic and onion. This version uses a blend of ground beef and Italian sausage for deep, savory flavor, bound with soaked breadcrumbs and parmesan for moisture and richness. The meatballs are browned before simmering, developing a golden crust while staying tender inside. Fresh basil stirred in at the end adds brightness to the sauce. This is comfort food for any home cook seeking a weeknight dinner that tastes like it took hours. Serve over al dente spaghetti with extra parmesan and fresh basil. What sets this apart is the meat combination, the bread-and-water binder ensuring tender meatballs, and the two-stage cooking method that builds flavor without drying them out.

Ingredients

8 servings
  • 3 slices white bread, crusts removed, diced or torn
    panko breadcrumbs1/2 cup dryadds gluten

    use less water (1/4 cup) to account for lower water content

    Full guide →
  • cup cold water
  • 1 lb lean ground beef, 7-15% fat
    all ground beef (2 lb)1:1

    lose herbaceous sausage flavor but still delicious

    Full guide →
  • 1 lb sweet ground Italian sausage, casings removed
  • ¼ cup grated parmesan cheese
    pecorino romano1/4 cupdairy-free

    sharper, saltier flavor

    Full guide →
  • 4 cloves garlic, minced
  • 1 tsp sea salt
  • ½ tsp black pepper
  • 1 large egg
  • ¾ cup all-purpose flour, to dredge
    panko3/4 cup

    crispier crust, lighter texture

  • 3 Tbsp light olive oil, to saute, or vegetable oil
  • 1 medium yellow onion, 1 cup chopped
  • 56 oz crushed tomatoes, from 2 28-oz cans
  • 2 leaves bay leaf, optional(optional)
  • salt, to taste(optional)
  • black pepper, to taste(optional)
  • 2 Tbsp fresh basil, finely minced
    dried basil2 tsp

    loses bright fresh quality; add earlier in sauce to bloom

    Full guide →
  • 1 lb spaghetti

Instructions

  1. 1

    Combine bread pieces with cold water and let sit 5 minutes, then mash with a fork.

  2. 2

    In a large bowl, combine ground beef, sausage, parmesan, garlic, salt, pepper, egg, and mashed bread. Mix until just combined.

  3. 3

    Form into 1 1/2-inch meatballs. Dredge in flour and shake off excess.

  4. 4

    Heat oil in a deep, heavy skillet over medium heat. Brown meatballs in 2 batches without crowding, about 6 minutes total per batch. Set aside.

  5. 5

    Add more oil if needed and saute chopped onion until soft and golden, about 5 minutes. Add minced garlic and stir until fragrant, 1-2 minutes.

  6. 6

    Stir in crushed tomatoes and bay leaves. Bring to a light boil.

  7. 7

    Return meatballs to the pan, partially cover, and simmer gently for 30 minutes, turning occasionally. Five minutes before done, stir in fresh basil and season with salt and pepper.

  8. 8

    Cook spaghetti according to package directions until al dente. Drain and return to pot.

  9. 9

    Pour sauce and meatballs over spaghetti and toss gently. Transfer to a platter, garnish with parmesan and fresh basil, and serve hot.

Tips

Tip 1

Soak bread in water and mash thoroughly before mixing into meat. This creates a binder that keeps meatballs tender and moist, preventing them from becoming dense or dry during cooking. The moisture is key to a tender final texture.

Tip 2

Brown meatballs in batches without crowding the pan. Overcrowding causes steam buildup and prevents proper browning. A golden crust adds flavor through the Maillard reaction even before simmering.

Tip 3

Simmer gently, not at a hard boil. Vigorous cooking toughens the meatballs and causes sauce to reduce too quickly. Gentle heat keeps them tender while flavors meld over 30 minutes.

Good to Know

Storage

Refrigerate sauce and meatballs in an airtight container up to 4 days. Reheat gently on the stovetop over low heat, stirring occasionally. Add a splash of water if sauce has thickened too much.

Make Ahead

Make meatballs and sauce up to 2 days ahead. Store separately in the refrigerator. Cook pasta fresh just before serving. The flavors actually deepen when made a day ahead.

Serve With

Serve hot over al dente spaghetti. Garnish generously with grated parmesan cheese and fresh basil. Pair with a simple green salad and crusty bread. Works for casual family dinners or entertaining.

See pairing guide →

Common Mistakes

Watch

Do not skip soaking the bread in water—dry breadcrumbs make dense, tough meatballs.

Watch

Do not crowd the pan when browning meatballs to avoid steaming them instead of searing.

Watch

Do not cook sauce at a hard boil to prevent tough meatballs and excessive reduction.

Watch

Do not skip the initial browning step; this builds essential flavor through crust development.

Watch

Do not forget to add fresh basil at the end—it brightens the sauce considerably.

Substitutions

Dairy-Free Swaps

parmesan
pecorino romano1/4 cupdairy-free

sharper, saltier flavor

Full guide →

General Alternatives

white bread
panko breadcrumbs1/2 cup dryadds gluten

use less water (1/4 cup) to account for lower water content

Full guide →
all-purpose flour
panko3/4 cup

crispier crust, lighter texture

Full guide →
lean ground beef + sausage
all ground beef (2 lb)1:1

lose herbaceous sausage flavor but still delicious

fresh basil
dried basil2 tsp

loses bright fresh quality; add earlier in sauce to bloom

Full guide →
Find more substitutions →

FAQ

Can I freeze these meatballs?

Yes. Freeze cooked meatballs and sauce together in an airtight container for up to 3 months. Thaw overnight in the refrigerator and reheat gently on the stovetop over low heat, stirring occasionally. Flavor remains intact after freezing.

What if I don't have Italian sausage?

Use 2 pounds of ground beef instead. The dish will lack the subtle herbs and fennel notes of sausage, but remains delicious. Or substitute ground pork with Italian seasoning added to the meatball mixture for similar flavor.

How long does the sauce keep?

Refrigerate sauce with meatballs in an airtight container up to 4 days. Freeze up to 3 months. Reheat gently; add water if sauce thickens too much. Flavors often improve the next day as ingredients continue melding.