Spaghetti & Meatballs

Spaghetti & Meatballs
⏱️ cook time 50 minutes
🍽️ servings 4
⚡ Difficulty medium

intro

Juicy, tender beef meatballs simmered in rich tomato sauce, tossed with al dente spaghetti and parmesan for a beloved, comforting Italian-American classic.

Ingredients

80/20 ground beef 450 grams
Dried spaghetti 400 grams
Canned no-salt-added crushed tomatoes 800 grams
Plain dry breadcrumbs 60 grams
Whole milk 80 ml
Large egg 1 unit (50 grams)
Garlic cloves 4 cloves (12 grams)
Yellow onion 1 small (100 grams)
Fresh basil 15 grams
Dried oregano 1 teaspoon
Kosher salt 2 tablespoons + 1 teaspoon (35 grams)
Freshly ground black pepper 1/2 teaspoon
Extra-virgin olive oil 2 tablespoons (30 ml)
Grated parmesan cheese 50 grams

Steps

1

Mix meatball base

In a large mixing bowl, combine 450g 80/20 ground beef, 60g plain dry breadcrumbs, 80ml whole milk, 1 beaten large egg, 2 minced garlic cloves, 20g grated parmesan, 1/2 teaspoon kosher salt, and 1/4 teaspoon freshly ground black pepper. Gently fold ingredients together with clean hands until just combined; do not overmix, as this creates tough, dense meatballs.

Step 1
step1:Mix meatball base
2

Sear the meatballs

Heat 2 tablespoons (30ml) extra-virgin olive oil in a large deep skillet over medium heat (175°C/350°F). Roll the meat mixture into 12 equal 4cm-wide balls, carefully place them in the hot oil. Sear for 2 minutes per side (8 minutes total) until golden brown on all surfaces, then transfer to a clean plate; meatballs will not be fully cooked at this stage.

Step 2
step2:Sear the meatballs
3

Cook sauce base

Leave the rendered meat drippings in the same skillet, lower heat to medium-low (150°C/300°F). Add 100g finely diced yellow onion, sauté for 3 minutes until soft and translucent. Add the remaining 2 minced garlic cloves and 1 teaspoon dried oregano, cook for 30 seconds until fragrant, then pour in 800g crushed tomatoes, stir in 1/2 teaspoon kosher salt and 1/4 teaspoon black pepper, stir to combine, and bring to a gentle, low bubble.

Step 3
step3:Cook sauce base
4

Simmer meatballs in sauce

Nestle the seared meatballs back into the gently simmering tomato sauce, reduce heat to low (110°C/225°F), cover the skillet, and cook for 20 minutes, stirring gently every 5 minutes to prevent the sauce from sticking to the pan, until meatballs reach an internal temperature of 74°C/165°F. Stir in 10g torn fresh basil during the final 2 minutes of cooking.

Step 4
step4:Simmer meatballs in sauce
5

Cook spaghetti al dente

While the meatballs simmer, bring a large stockpot of 4 liters water with 2 tablespoons kosher salt to a rolling boil over high heat. Add 400g dried spaghetti, cook for 1 minute less than the package’s recommended al dente time (approximately 9 minutes total) until firm to the bite. Reserve 120ml of starchy pasta water, then drain the spaghetti; do not rinse the pasta, as this removes the starchy coating that helps sauce cling.

Step 5
step5:Cook spaghetti al dente
6

Toss and serve pasta

Add the drained hot spaghetti to the skillet with sauce and meatballs, turn heat to medium-low, toss vigorously for 1 minute, adding small splashes of reserved starchy pasta water as needed to create a glossy, light sauce coating that clings to every pasta strand. Top with the remaining 30g grated parmesan, 5g torn fresh basil, and a light pinch of black pepper to serve.

Step 6
step6:Toss and serve pasta

Tips

1.Avoid overworking the meatball mixture: squeezing or overmixing compacts the ground beef, resulting in tough, dense meatballs instead of light, juicy ones.
2.Never rinse cooked spaghetti: the starchy outer layer on drained pasta helps the tomato sauce emulsify and stick evenly to each strand, rather than sliding off.
3.For a richer, more traditional flavor profile, swap 150g of the ground beef for ground pork to add extra fat and depth to the meatballs.

✨ You May Also Like

Main Course
🍜 United Kingdom

A showstopping classic of tender seared beef, savory mushroom duxelles, and crisp prosciutto wrapped in flaky golden puff pastry, baked to juicy perfection.

⏱️ 2 hours 1Main Course ★ 4.7
Main Course
🍜 India

Tender charred marinated chicken simmered in a rich, spiced creamy tomato sauce, this iconic Anglo-Indian curry pairs perfectly with basmati rice or warm naan.

⏱️ 50 minuteMain Course ★ 4.8
Main Course
🍜 Thailand

Classic tangy, sweet, and savory Thai stir-fried rice noodles with shrimp, tofu, and crunchy garnishes, balancing all five core Thai flavor profiles.

⏱️ 30 minuteMain Course ★ 4.6
Main Course
🍜 United Kingdom

Crispy golden beer-battered cod and fluffy double-fried chips, served with tangy tartar sauce and malt vinegar: the timeless, beloved British pub comfort classic.

⏱️ 45 minuteMain Course ★ 4.9
Main Course
🍜 Mexico

Smoky, chile-marinated pork tacos with caramelized pineapple, fresh cilantro, and lime: a beloved classic Mexican street food perfect for casual summer gatherings.

⏱️ 1 hour 45Main Course ★ 4.7
Main Course
🍜 United States

Crunchy Fritos corn chips layered with savory beef chili and melted cheddar, topped with cool, zesty fixings for a beloved, cozy Tex-Mex comfort food.

⏱️ 35 minuteMain Course ★ 4.9

Spaghetti & Meatballs:Frequently Asked Questions

1.Why do you recommend 80/20 ground beef instead of leaner blends for the meatballs?
That 20% fat content is non-negotiable for juicy, tender meatballs! Leaner blends like 90/10 cook up dry, dense, and crumbly even if you’re careful not to overmix the meat. The small amount of fat that renders as the meatballs simmer also adds rich, savory depth to your tomato sauce that you can’t replicate with plain cooking oil.
2.What’s the purpose of soaking dry breadcrumbs in whole milk before mixing them into the meatballs?
That quick step makes a simple panade, the secret to meatballs that are tender instead of tough and rubbery. The milk hydrates the dry breadcrumbs so they bind the meat gently without making the mix gummy, and the milk fat adds extra moisture so your meatballs stay soft even after a long simmer in tomato sauce.
3.Why use no-salt-added crushed tomatoes instead of regular canned crushed tomatoes for the sauce?
No-salt-added tomatoes let you control the exact sodium level of your sauce, so it never ends up overly salty once you add salty parmesan and seasoned meatballs. Regular canned tomatoes often have added salt that concentrates as the sauce simmers, leading to a briny, flat finish instead of bright, fresh tomato flavor.
4.How do I keep my spaghetti perfectly al dente so it doesn’t turn mushy when tossed with sauce?
Cook the pasta in heavily salted boiling water 2 minutes short of the package’s listed al dente time—it will finish cooking directly in the sauce. Reserve ½ cup of starchy pasta water before draining, never rinse the spaghetti (that removes sauce-clinging starch), and toss it with the simmering sauce for 1-2 minutes to combine.

Comments (12)

just now

Added a little Italian sausage to half the meat mix for extra flavor and oh my GOD, chef’s kiss. If you’re a sausage fan I 100% recommend trying that swap. Next time I’ll do half beef half sausage for all of them.

30 minutes ago

Can I make the meatball mixture the night before I want to cook this? Hosting a dinner party tomorrow and want to get as much prep done tonight as possible!

5 minutes ago

Absolutely! You can mix and roll the meatballs, store them covered in the fridge overnight, and cook them as directed the next day. The flavors actually meld even better when they rest a bit! Hope your dinner party is a hit.

2 hours ago

I’ve been making spaghetti and meatballs for 40 years and decided to give this recipe a shot to switch things up. The addition of a little parmesan right in the meatball mix? Game changer. Never going back to my old recipe.

30 minutes ago

Wait the parmesan in the meatballs is what sold me too! I thought it was weird at first but it adds so much umami, I can’t believe I never did that before.

yesterday

Pro tip: top the whole thing with a little extra parmesan and red pepper flakes if you like a tiny kick. I did that and my roommate said it was better than the Italian place down the street. Win.

2 days ago

Made this for my son’s soccer team pre-game pasta dinner and it was a home run. All the boys were hyped, even the coaches came back for seconds. Doubled the recipe and had barely any leftovers. Worth every minute of cook time.

yesterday

Love hearing that! Pasta dinners are the best pre-game fuel, and we’re honored this recipe got to be part of your team’s meal. Go team!

3 days ago

Tried this for my first ever meal prep for the week! Turned out pretty good, but my meatballs fell apart a little when I was browning them. Any idea what I might have messed up? Flavor was still chef’s kiss though

2 days ago

Great question! Meatballs usually fall apart if they’re not mixed enough, or if you don’t let them rest in the fridge for 10-15 minutes before browning. Next time try popping the rolled meatballs in the fridge while your pan heats up, that helps them hold their shape! So glad the flavor was on point for you.

3 days ago

This is my go-to spaghetti and meatballs recipe, but has anyone tried making it gluten free? I have celiac and would love to make this for my partner’s birthday dinner next week, but I’m worried about swapping the breadcrumbs! It’s always such a hit with my friends when I make the regular version.

2 days ago

I made this last month with gluten free panko breadcrumbs and it worked perfectly! Just make sure you don’t overmix the meat, same as regular breadcrumbs. No one could tell the difference.

2 days ago

That’s exactly the swap we recommend! Gluten free panko works 1:1 in place of regular breadcrumbs for this recipe, and the meatballs turn out just as juicy. Hope the birthday dinner is amazing!

5 days ago

SO good. Brought this to my neighborhood potluck last weekend and the whole pan was gone in 20 minutes. Multiple people asked for the recipe, obviously sent them the link!

5 days ago

I was a little nervous about the medium difficulty rating because I’m a super basic cook, but this was totally manageable! Cook time was right around 50 minutes like it said, no surprises. The only swap I made was using turkey instead of beef because that’s what I had in the fridge, still tasted amazing.

3 days ago

Oh good to know about the turkey swap! I’ve been trying to cut down on red meat and was worried it would be dry, I’ll give that a shot next week.

1 week ago

OMG this recipe is a total game changer! I made this for our Sunday family dinner last night and my kids (the pickiest eaters on the planet) went back for SECONDS. The meatballs were so juicy, not dry at all like every other recipe I’ve tried. Served it with garlic bread and a side salad, perfect weeknight or weekend meal! 10/10

5 days ago

Same here! My 7 year old usually turns up his nose at any meat that’s not a chicken nugget and he ate three meatballs last night when I made this. Wild!

5 days ago

That makes us so happy to hear! Juicy meatballs are our top priority with this recipe — so glad your family enjoyed it, thanks for leaving a review!

1 week ago

This recipe is so straightforward, I made it while half watching football yesterday and it still turned out perfect. The sauce is so much better than jarred, I’ll never go back.

2 weeks ago

Flavor was great, but 50 minute cook time felt a little long for a weeknight meal for me. I ended up making the meatballs ahead on Sunday and freezing them, which made weeknight assembly super fast. Definitely will make again, just plan ahead!

1 week ago

I do the same thing! I make a double batch of meatballs once a month and freeze them, cuts the cook time down to like 20 minutes on a busy night. Total lifesaver.

1 week ago

Great tip about making the meatballs ahead! That’s one of our favorite meal prep hacks for this exact recipe — we’re so glad you found a rhythm that works for your weeknights, thanks for sharing!