Skip to main content

Our Favourite Spaghetti and Meatballs

This classic spaghetti and meatballs recipe is the ultimate comfort food, featuring a rich, slow-cooked tomato sauce that simmers for hours to develop a deep, aromatic flavour. By using a traditional combination of minced beef, pork, and veal, the meatballs achieve a superior depth of flavour and a light, melt-in-the-mouth texture. Fresh basil, garlic, and a hint of fennel seed bring an authentic Italian-inspired touch to this hearty family favourite.

As a high-protein dish, this meal is as nourishing as it is satisfying, making it an excellent choice for a weekend dinner or a celebratory gathering. The sauce and meatballs can both be prepared in advance, allowing the flavours to marry even further. Serve this impressive dish with a generous dusting of Parmesan and fresh parsley for a beautiful, restaurant-quality finish at home.

Video picks

Continue reading below

Ingredients for Our Favourite Spaghetti and Meatballs

  • 120ml olive oil

  • 12 garlic cloves, peeled

  • 4 (800g) cans whole tomatoes

  • 1/2 teaspoons red pepper flakes

  • 2 dried bay leaves

  • 2 teaspoons kosher salt

  • 1 1/2 teaspoons dried oregano

  • 1/2 teapoon freshly ground pepper

  • 2/3 cup (packed) basil leaves

  • 1 cup roughly torn day-old Italian bread

  • 240ml whole milk

  • 230g beef mince

  • 230g pork mince

  • 230g ground veal

  • 3 large eggs, beaten to blend

  • 4 garlic cloves, finely chopped

  • 190g grated Parmesan, divided

  • 3/4 cup coarsely chopped fresh parsley, divided

  • 1 teaspoon kosher salt, plus more

  • 1 teaspoon dried oregano

  • 1/2 teaspoons freshly ground black pepper

  • 1/2 teaspoons ground fennel seeds

  • 1/2 teaspoons red pepper flakes

  • 60ml olive oil

  • 450g spaghetti

Heat a large, wide pot over medium-low and add oil and garlic. Cook, stirring occasionally, until garlic is golden brown on all sides (if it starts to burn, reduce heat), 8–10 minutes. While garlic cooks, break up tomatoes into smaller pieces with a paring knife or kitchen shears. When garlic is almost ready, add red pepper flakes and cook, stirring occasionally, until toasted and fragrant, about 30 seconds. Add tomatoes, bay leaves, salt, oregano, and pepper and stir, breaking up tomatoes with a wooden spoon, until well combined.

Increase heat slightly and gently simmer, stirring occasionally, until sauce has thickened and flavours have concentrated, at least 2 hours and up to 3 hours.

Place bread in a medium bowl, add milk, and let rest until moistened, about 5 minutes. Squeeze bread with your hands to remove excess milk, discarding milk. Tear bread into smaller, pea-size pieces and return to the medium bowl.

Combine beef, pork, veal, eggs, garlic, 1 cup Parmesan, 1/2 cup parsley, 1 teaspoon salt, oregano, pepper, fennel, and red pepper flakes in a large bowl. Using your hands, gently mix in bread until ingredients are evenly distributed (do not overmix).

Fill a small bowl with cool water. Moisten your hands and roll meat mixture between palms into golf-ball-sized balls, occasionally moistening hands as needed. Place meatballs on a rimmed baking sheet-you should have about 24-and chill until sauce is ready.

After 2–3 hours of simmering, pluck out bay leaves and add basil. Using an immersion blender (or transfer sauce to a food processor or blender, working in batches, if necessary), purée until slightly chunky but not smooth. Reserve 350ml sauce; keep remaining sauce in pot warm over very low heat.

Heat a large skillet over medium-high and add oil. Once hot, add meatballs to skillet (without crowding) and work in batches to brown on all sides, turning frequently, about 5 minutes per batch. Return meatballs to baking sheet as you brown them.

Once all meatballs are browned, add them to pot with tomato sauce. If your pot is not large enough, divide sauce and meatballs between 2 pots. Increase heat to medium-low, cover, and simmer until meatballs are cooked through, 10–15 minutes.

Meanwhile, cook spaghetti in a large pot of boiling salted water, stirring occasionally, until al dente. Drain, reserving 240ml pasta cooking liquid, and return pasta to pot over medium-low heat. Spoon reserved 350ml sauce over pasta and toss to coat. Add pasta cooking liquid, 60ml at a time, as needed to loosen sauce and coat pasta.

Divide pasta among plates and top with meatballs and remaining sauce. Sprinkle with remaining 1/4 cup Parmesan and 1/4 cup parsley.

Sauce can be made, cooled, and refrigerated for up to 5 days or frozen for up to 3 months. Meatballs can be shaped and refrigerated 1 day in advance. Meatballs can be cooked in sauce, cooled, and refrigerated for up to 5 days or frozen for up to 3 months.

Disclaimer

While every effort has been made to ensure the information is accurate and up to date, individual needs may vary and dietary requirements can differ based on personal health conditions. Always check food labels and allergen information before preparing or consuming any recipe. If you have specific health concerns, allergies, intolerances, or are following a medically prescribed diet, seek advice from your GP, pharmacist, or a registered dietitian before making significant changes to your diet or lifestyle.

Article history

The information on this page is peer reviewed by qualified clinicians.

  • 28 Jan 2026 | Originally published

    Authored by:

    UK recipe editors

    Peer reviewed by

    UK recipe editors
flu eligibility checker

Ask, share, connect.

Browse discussions, ask questions, and share experiences across hundreds of health topics.

symptom checker

Feeling unwell?

Assess your symptoms online for free

Sign up to the Patient newsletter

Your weekly dose of clear, trustworthy health advice - written to help you feel informed, confident and in control.

Please enter a valid email address

By subscribing you accept our Privacy Policy. You can unsubscribe at any time. We never sell your data.