Quick Weeknight Spaghetti with Homemade Beef Meatballs

Quick Weeknight Spaghetti with Homemade Beef Meatballs

Some nights, you want a dinner that feels like a hug in a bowl but doesn’t keep you tied to the stove for two hours. This spaghetti with homemade beef meatballs is my secret weapon for those exact evenings—it comes together in about forty minutes, uses just a handful of pans, and the meatballs freeze like a dream for the next frantic Tuesday.

Recipe Overview

  • Prep time: 15 minutes
  • Cook time: 25 minutes
  • Total time: 40 minutes
  • Servings: 4 generous portions
  • Difficulty: Beginner-friendly

Why You’ll Love This Spaghetti with Homemade Beef Meatballs

  • One-pan meatball browning: I sear the meatballs straight in the pan I’ll use for the sauce, so there’s only one dirty dish for the main cooking.
  • Ready in under an hour: From pulling the beef from the fridge to twirling spaghetti on forks, you’re looking at forty minutes flat.
  • Freezer-friendly meatballs: Make a double batch, freeze half raw on a tray, and you’ve got two future dinners ready to go.
  • No fancy equipment required: A large frying pan, a pot for pasta, and a colander are all you need—no blenders, food processors, or complicated gadgets.
  • Customisable in minutes: Swap in turkey, add chilli flakes for heat, or toss in extra veg—the base recipe adapts without fuss.
Spaghetti with Homemade Beef Meatballs

Spaghetti with Homemade Beef Meatballs
15 min prep  ·  30 min cook  ·  4 servings

📌Save to Pinterest

Ingredients You’ll Need

  • 500g beef mince (15–20% fat works best for juicy meatballs)
  • 75g fresh breadcrumbs (about two thick slices of bread, whizzed in a blender)
  • 1 large egg, lightly beaten
  • 3 cloves garlic, minced (two for the meatballs, one for the sauce)
  • 40g finely grated Parmesan cheese, plus extra for serving
  • 1 tablespoon tomato paste
  • 1 teaspoon dried oregano
  • ½ teaspoon fine sea salt
  • ½ teaspoon black pepper
  • 2 tablespoons olive oil
  • 1 medium onion, finely diced
  • 800g tinned chopped tomatoes (San Marzano, if you can find them)
  • 400g dried spaghetti
  • Small handful fresh basil leaves, torn (optional, for garnish)
  • 2 tablespoons unsalted butter (optional, for a silky finish to the sauce)

Tip: If you’re short on breadcrumbs, blitz a couple of slices of stale bread in a food processor—or simply tear them into tiny bits with your fingers. The breadcrumbs keep the meatballs tender, so don’t skip them.

How to Make Spaghetti with Homemade Beef Meatballs

  1. Get the pasta water on first. Fill your largest pot with water, add a generous pinch of salt, and set it over high heat. You want it at a rolling boil by the time the meatballs are ready. When you see big bubbles breaking the surface aggressively, that’s your cue—drop the spaghetti in and cook according to package directions until al dente, usually about 9–11 minutes.
  2. Mix the meatball base. In a large bowl, combine the beef mince, breadcrumbs, beaten egg, two-thirds of the minced garlic, grated Parmesan, tomato paste, oregano, salt, and pepper. Use your hands to mix gently—stop as soon as everything is combined. Overworking the mix makes the meatballs dense. The texture should feel soft and slightly tacky, but not wet or sticky.
  3. Roll the meatballs. Dampen your hands slightly with cold water to stop the mix sticking. Roll the mixture into walnut-sized balls, about 2.5cm in diameter. You should get roughly 20–24 meatballs. Place them on a plate or tray as you go—they should hold their shape nicely without cracking. If they feel too loose, pop the bowl in the fridge for ten minutes.
  4. Sear the meatballs. Heat the olive oil in a large frying pan over medium-high heat. When the oil shimmers and a test meatball sizzles on contact, add the meatballs in a single layer—don’t crowd them; cook in two batches if necessary. Let them brown undisturbed for 3–4 minutes. You want a deep golden-brown crust on the underside. Turn them carefully with tongs and brown the other side for another 3 minutes. The kitchen will smell rich and savoury, and the meatballs should feel firm but still give slightly when pressed.
  5. Build the sauce. Remove the meatballs to a plate. Lower the heat to medium, add the diced onion to the same pan, and cook for 3–4 minutes, scraping up any brown bits from the bottom. The onion should turn translucent and smell sweet, not burnt. Add the remaining garlic and cook for 30 seconds until fragrant—you’ll smell it immediately. Pour in the tinned tomatoes, stir, and bring the sauce to a gentle simmer. The colour will shift from bright red to a deeper, richer crimson.
  6. Finish the meatballs in the sauce. Return the seared meatballs to the pan, nestling them into the sauce. Cover the pan partially with a lid, reduce the heat to low, and let everything simmer for 12–15 minutes. The sauce should bubble lazily, not furiously. Stir once halfway through. The meatballs will absorb some sauce and become wonderfully tender—when you cut one open, the inside should be cooked through and juicy, not grey or dry.
  7. Bring it all together. Drain the spaghetti (reserve about 100ml of pasta water) and add the pasta directly to the pan with the sauce and meatballs. Toss everything gently with tongs for a minute, adding a splash of pasta water if the sauce looks too thick. The sauce should coat each strand of spaghetti lightly, not pool at the bottom. Stir in the butter if you’re using it—it melts into the sauce and gives a glossy, velvety finish. Serve immediately, topped with fresh basil and extra Parmesan.

Tips From My Kitchen

  • Don’t skip the breadcrumbs. They’re not just filler—breadcrumbs absorb moisture from the egg and beef, holding the meatballs together while keeping them light. Without them, you’ll end up with dense, heavy balls that fall apart in the sauce. I use fresh breadcrumbs because they dissolve slightly into the meat, making the texture softer than dry store-bought ones.
  • Use cold hands for rolling. Running your hands under cold water before rolling each batch stops the mince from sticking to your palms. It also keeps the fat in the beef from warming up too much, which helps the meatballs hold their shape during cooking. Re-wet your hands every few meatballs for the best results.
  • Don’t overwork the mince. Mix the ingredients just until you can’t see streaks of egg or breadcrumbs anymore. Overmixing develops the proteins in the beef too much, leading to tough, rubbery meatballs. I use a light, gentle hand and stop the moment everything looks combined—about 30 seconds of mixing is plenty.
  • Make ahead and freeze raw. I often roll a double batch of meatballs on a Sunday evening, arrange them on a baking tray lined with baking paper, and pop them in the freezer for an hour. Once they’re solid, I transfer them to a freezer bag. On busy weeknights, I cook them straight from frozen—just add 3–4 extra minutes to the searing time. This is my go-to recipe when I need something quick but impressive.
  • Reserve that pasta water. The starchy water is liquid gold for thinning your sauce while helping it cling to the spaghetti. Add it a tablespoon at a time until the sauce reaches the consistency you like. I usually end up using about 60–80ml, but every batch of pasta is different, so keep it handy.
  • Let the sauce rest before serving. Once you’ve tossed the spaghetti with the sauce, let the pan sit off the heat for two minutes before serving. This allows the pasta to absorb some of the sauce’s flavour, and the sauce will thicken slightly as it cools. The result is a more cohesive dish, not a plate of wet spaghetti with meatballs sitting on top.
  • Scale up for leftovers. If you’re feeding a crowd or want lunches for the week, double the meatball recipe but keep the sauce quantity the same. Extra meatballs freeze beautifully, and you can always make more sauce later. I used to struggle with this dish until I discovered this technique—now I never make just one batch.

Equipment You’ll Need

  • Large pot for boiling pasta
  • Colander
  • Large frying pan (preferably with a lid or a tight-fitting piece of foil)
  • Tongs or pasta fork for tossing
  • Large mixing bowl
  • Measuring spoons
  • Chef’s knife and chopping board

Delicious Variations to Try

  • Spicy Version: Add 1 teaspoon of red chilli flakes to the meatball mix and another half teaspoon to the sauce as it simmers. For extra kick, stir in a finely chopped fresh red chilli with the onion. The heat builds gradually without overpowering the tomato base.
  • Vegetarian/Vegan Option: Replace the beef mince with 400g of plant-based mince (the kind that looks and feels like beef works best). Use a flax egg (1 tablespoon ground flaxseed mixed with 3 tablespoons water, left to sit for 5 minutes) instead of the egg, and swap the Parmesan for a vegan alternative or nutritional yeast. The cooking time stays the same, but handle the plant-based meatballs more gently—they’re more delicate than beef.
  • Different Protein: Substitute the beef with turkey mince for a lighter version, or use half beef and half lamb for a richer, more aromatic flavour. If using turkey, add an extra tablespoon of olive oil to the mix to keep the meatballs moist, since turkey is much leaner than beef.

What to Serve With Spaghetti with Homemade Beef Meatballs

  • A simple green salad dressed with lemon juice and olive oil—the acidity cuts through the richness of the meatballs beautifully.
  • Crusty garlic bread for mopping up every last bit of sauce from the plate.
  • Roasted broccoli or green beans tossed in a little garlic and chilli for a quick vegetable side.
  • If you’re in the mood for something lighter, try this 10 Minute Seared Tuna And Mango Salad Bowl as a starter or side dish—it’s fresh, fast, and completely different from the pasta.

Frequently Asked Questions

Can I use dried breadcrumbs instead of fresh?
Yes, but the texture will be slightly denser. Dried breadcrumbs absorb more moisture than fresh, so add them gradually and stop when the mixture feels soft but not wet. If the mix seems too dry after adding all the dried breadcrumbs, add a splash of milk or water to loosen it.

How do I stop my meatballs from falling apart in the sauce?
The egg and breadcrumbs are your binders, so make sure they’re evenly distributed. Also, don’t skip the searing step—browning creates a crust that helps the meatballs hold together during simmering. If your meatballs still crumble, the mix might be too wet; add another tablespoon of breadcrumbs next time.

Can I make this dish gluten-free?
Absolutely. Use gluten-free breadcrumbs (many supermarkets sell them, or blitz a couple of gluten-free crackers) and swap the spaghetti for your favourite gluten-free pasta. The rest of the recipe remains unchanged, though gluten-free pasta tends to cook a minute or two faster, so keep an eye on it.

How long do leftovers keep in the fridge?
Store the spaghetti and meatballs together in an airtight container in the fridge for up to three days. Reheat gently in a frying pan with a splash of water or extra tinned tomatoes to loosen the sauce—microwaving can dry out the meatballs. I actually find the flavour improves overnight as the sauce soaks into the pasta.

Can I bake the meatballs instead of frying them?
Yes, and it’s a great hands-off method. Arrange the meatballs on a lined baking tray and bake at 200°C (fan) for 12–15 minutes, until golden and cooked through. They won’t have the same deep brown crust as pan-seared meatballs, but they’ll still be tender. Add them to the sauce and simmer for 5 minutes to let the flavours meld.

Quick Weeknight Spaghetti with Homemade Beef Meatballs

Spaghetti with Homemade Beef Meatballs

Classic spaghetti and beef meatballs in a rich tomato sauce, made from scratch with juicy meatballs and a silky finish.
Prep Time 15 minutes
Cook Time 30 minutes
Total Time 45 minutes
Servings: 4 servings
Course: Main Course
Cuisine: American
Calories: 350

Ingredients
  

  • 500 g beef mince 15–20% fat works best for juicy meatballs
  • 75 g fresh breadcrumbs about two thick slices of bread, whizzed in a blender
  • 1 large egg lightly beaten
  • 3 cloves garlic minced (two for the meatballs, one for the sauce)
  • 40 g finely grated Parmesan cheese plus extra for serving
  • 1 tablespoon tomato paste
  • 1 teaspoon dried oregano
  • ½ teaspoon fine sea salt
  • ½ teaspoon black pepper
  • 2 tablespoons olive oil
  • 1 medium onion finely diced
  • 800 g tinned chopped tomatoes San Marzano, if you can find them
  • 400 g dried spaghetti
  • Small handful fresh basil leaves torn (optional, for garnish)
  • 2 tablespoons unsalted butter optional, for a silky finish to the sauce

Method
 

  1. Get the pasta water on first. Fill your largest pot with water, add a generous pinch of salt, and set it over high heat. You want it at a rolling boil by the time the meatballs are ready. When you see big bubbles breaking the surface aggressively, that's your cue—drop the spaghetti in and cook according to package directions until al dente, usually about 9–11 minutes.
  2. Mix the meatball base. In a large bowl, combine the beef mince, breadcrumbs, beaten egg, two-thirds of the minced garlic, grated Parmesan, tomato paste, oregano, salt, and pepper. Use your hands to mix gently—stop as soon as everything is combined. Overworking the mix makes the meatballs dense. The texture should feel soft and slightly tacky, but not wet or sticky.
  3. Roll the meatballs. Dampen your hands slightly with cold water to stop the mix sticking. Roll the mixture into walnut-sized balls, about 2.5cm in diameter. You should get roughly 20–24 meatballs. Place them on a plate or tray as you go—they should hold their shape nicely without cracking. If they feel too loose, pop the bowl in the fridge for ten minutes.
  4. Sear the meatballs. Heat the olive oil in a large frying pan over medium-high heat. When the oil shimmers and a test meatball sizzles on contact, add the meatballs in a single layer—don't crowd them; cook in two batches if necessary. Let them brown undisturbed for 3–4 minutes. You want a deep golden-brown crust on the underside. Turn them carefully with tongs and brown the other side for another 3 minutes. The kitchen will smell rich and savoury, and the meatballs should feel firm but still give slightly when pressed.
  5. Build the sauce. Remove the meatballs to a plate. Lower the heat to medium, add the diced onion to the same pan, and cook for 3–4 minutes, scraping up any brown bits from the bottom. The onion should turn translucent and smell sweet, not burnt. Add the remaining garlic and cook for 30 seconds until fragrant—you'll smell it immediately. Pour in the tinned tomatoes, stir, and bring the sauce to a gentle simmer. The colour will shift from bright red to a deeper, richer crimson.
  6. Finish the meatballs in the sauce. Return the seared meatballs to the pan, nestling them into the sauce. Cover the pan partially with a lid, reduce the heat to low, and let everything simmer for 12–15 minutes. The sauce should bubble lazily, not furiously. Stir once halfway through. The meatballs will absorb some sauce and become wonderfully tender—when you cut one open, the inside should be cooked through and juicy, not grey or dry.
  7. Bring it all together. Drain the spaghetti (reserve about 100ml of pasta water) and add the pasta directly to the pan with the sauce and meatballs. Toss everything gently with tongs for a minute, adding a splash of pasta water if the sauce looks too thick. The sauce should coat each strand of spaghetti lightly, not pool at the bottom. Stir in the butter if you're using it—it melts into the sauce and gives a glossy, velvety finish. Serve immediately, topped with fresh basil and extra Parmesan.

Notes

For the most tender meatballs, avoid overmixing the meatball base. If the mixture feels too loose, refrigerate for 10 minutes before rolling. San Marzano tomatoes are recommended for the sauce. The optional butter adds a glossy, velvety finish.

I hope this spaghetti with homemade beef meatballs becomes your new weeknight hero—it certainly is in my kitchen. If you give it a try, I’d love to hear how it went. Drop a comment below and tell me about your favourite twist on the recipe, or share a tip of your own. Happy cooking!

You might also like these recipes

Leave a Reply

Your email address will not be published. Required fields are marked *

Recipe Rating