Spaghetti and Meatballs

Spaghetti and Meatballs
⏱️ cook time 55 minutes
🍽️ servings 4
⚡ Difficulty medium

intro

Tender, juicy beef-pork meatballs simmered in rich tomato sauce, tossed with al dente spaghetti for a comforting, crowd-pleasing classic.

Ingredients

80/20 ground beef 225 grams
Ground pork 225 grams
Dried spaghetti 400 grams
Unsalted canned crushed tomatoes 800 grams
Grated Parmigiano-Reggiano cheese 50 grams (1/2 cup packed)
Plain dried breadcrumbs 80 grams (2/3 cup)
Whole milk 60 ml (1/4 cup)
Large egg 1 (50 grams)
Yellow onion 1 medium (150 grams, finely diced)
Garlic cloves 4 (12 grams, minced)
Extra-virgin olive oil 15 ml (1 tablespoon)
Dried oregano 2 grams (1 teaspoon)
Kosher salt 45 grams (9 teaspoons)
Freshly ground black pepper 1 gram (1/2 teaspoon)
Fresh basil leaves 10 grams (1/4 cup packed, torn)

Steps

1

Mix meatball mixture

In a large mixing bowl, combine 225g 80/20 ground beef, 225g ground pork, 80g plain dried breadcrumbs, 50g grated Parmigiano-Reggiano, 60ml whole milk, 1 lightly beaten large egg, 3g (3/4 tsp) kosher salt, and 0.5g (1/4 tsp) freshly ground black pepper. Gently fold the ingredients with clean hands just until evenly combined—do not overmix, as this compacts the meat and creates tough meatballs. Let the mixture rest for 10 minutes at room temperature to allow breadcrumbs to absorb moisture for lighter meatballs.

Step 1
step1:Mix meatball mixture
2

Shape and sear meatballs

Heat 15ml (1 tbsp) extra-virgin olive oil in a heavy-bottomed 5L Dutch oven over medium heat (175°C/350°F). Portion the rested meat mixture into 12 equal 55g balls, rolling lightly between your palms to form smooth, even rounds. Working in 2 batches to avoid crowding the pan (which causes steaming instead of searing), cook meatballs for 2 minutes per side (8 minutes total per batch) until deep golden brown on all surfaces. Transfer seared meatballs to a clean plate and set aside.

Step 2
step2:Shape and sear meatballs
3

Build tomato sauce base

Leave the rendered meat fat in the Dutch oven, and reduce heat to medium-low (150°C/300°F). Add the 150g finely diced yellow onion, sauté for 5 minutes until soft and translucent. Add 12g minced garlic and 2g dried oregano, stirring constantly for 30 seconds until fragrant, taking extreme care not to burn the garlic (which turns bitter quickly). Pour in 800g unsalted crushed tomatoes, add 2g (1/2 tsp) kosher salt, stir to scrape up any browned bits from the pan bottom, and bring to a gentle simmer.

Step 3
step3:Build tomato sauce base
4

Simmer meatballs in sauce

Nestle the seared meatballs back into the gently simmering tomato sauce, spooning sauce over the top of each meatball to partially cover. Reduce heat to low (110°C/225°F), set the Dutch oven lid slightly ajar to let steam escape, and let the sauce and meatballs simmer for 20 minutes, stirring gently once at the 10-minute mark to prevent sauce from sticking to the pan bottom. Meatballs are fully cooked when they reach an internal temperature of 74°C/165°F, and the sauce will thicken slightly as it simmers.

Step 4
step4:Simmer meatballs in sauce
5

Cook spaghetti al dente

While the meatballs simmer, bring a large stockpot holding 4 liters (1 gallon) of heavily salted water (40g/8 tsp kosher salt, 10g per liter of water) to a rolling boil over high heat. Add 400g dried spaghetti, stirring immediately with a pasta fork to prevent noodles from sticking together. Cook for 9 minutes (1 minute less than the package’s recommended al dente time), as the pasta will finish cooking in the sauce. Reserve 120ml (1/2 cup) of starchy pasta water before draining the spaghetti; do not rinse the drained pasta, as this removes the starchy coating that helps sauce cling.

Step 5
step5:Cook spaghetti al dente
6

Toss pasta and serve

Add the drained hot spaghetti directly to the Dutch oven with the sauce and meatballs, increase heat to medium-low, and toss vigorously for 1 minute to coat noodles evenly. Add small splashes of the reserved starchy pasta water as needed to create a silky, glossy sauce that clings tightly to each pasta strand. Top with 10g torn fresh basil, remaining 0.5g black pepper, and extra grated parmesan if desired before serving immediately.

Step 6
step6:Toss pasta and serve

Tips

1.Avoid overworking the meatball mixture: squeezing or stirring too much compacts the meat and breadcrumbs, leading to dense, tough meatballs instead of light, tender ones.
2.Never rinse cooked spaghetti: the starchy film on drained noodles acts as a binder to help tomato sauce stick evenly to each strand, rather than sliding off onto the plate.
3.Don’t skip searing the meatballs: the browned crust created by high-heat searing adds deep, savory umami flavor from the Maillard reaction that you cannot get by cooking raw meatballs directly in sauce.

✨ 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 and Meatballs:Frequently Asked Questions

1.Why do you recommend 80/20 ground beef instead of leaner ground beef for the meatballs?
The 20% fat content in 80/20 ground beef is critical for juicy, non-crumbly meatballs—leaner blends like 90/10 will dry out easily during slow simmering, even with added ground pork. That fat renders slowly as the meatballs cook, adding savoriness to both the meatballs and surrounding tomato sauce, so you won’t end up with tough, bland bites.
2.Can I skip the ground pork and use all beef for the meatballs?
You absolutely can, but your meatballs will be a little less tender and rich if you do. If you skip pork, swap it for an equal weight of 80/20 ground beef, and add 1 tablespoon of softened unsalted butter per pound of total meat to mimic the creamy, mild fat pork contributes. Avoid extra-lean beef here to prevent dry, dense results.
3.Do I have to brown the meatballs before simmering them in tomato sauce?
You don’t have to, but I strongly recommend it for the best flavor. Searing meatballs in a hot pan creates a deep, caramelized crust that adds nutty, savory notes you can’t get from raw simmering, and those browned bits left in the pan make your tomato sauce taste far more complex. You only need 2-3 minutes per side, no need to cook them fully first.
4.Why use unsalted canned crushed tomatoes instead of jarred pasta sauce or salted canned tomatoes?
Unsalted canned crushed tomatoes give you full control over the final seasoning of your sauce, so you don’t end up with overly salty, processed flavor from pre-seasoned jarred sauce or salted canned tomatoes. Look for domestic or San Marzano-style cans for the brightest, sweetest tomato flavor, and adjust salt to taste as the sauce simmers.
5.How do I keep my meatballs from falling apart while they simmer?
The biggest fixes for crumbly meatballs are not overmixing your meat blend, adding a simple binder (soaked breadcrumbs plus the grated Parmigiano-Reggiano from the ingredient list), and letting seared meatballs rest 5 minutes before adding them to gently simmering (not boiling) sauce. Vigorous boiling jostles meatballs too much and breaks them apart before they set.
6.How long should I simmer meatballs in the tomato sauce for the best texture?
Aim for 30 to 45 minutes of gentle, low simmering, with the pot lid slightly ajar to let steam escape and the sauce thicken. Any shorter, and the flavors won’t meld; any longer, and you risk overcooking meatballs into tough, dry pucks. Stir very gently every 10 minutes to make sure sauce doesn’t stick to the pot bottom.
7.Can I make the meatballs and sauce ahead of time for meal prep?
Absolutely—this dish actually tastes better the next day! Let the cooked meatballs and sauce cool completely, then store in an airtight container in the fridge for up to 4 days, or freeze for up to 3 months. The flavors meld as it rests, making the sauce richer and the meatballs more seasoned when you reheat gently on the stovetop.
8.What’s the right way to cook dried spaghetti so it’s perfectly al dente for this dish?
Use a large pot of heavily salted water (it should taste as salty as seawater) and cook dried spaghetti 1 minute less than the package’s recommended al dente time. Reserve ½ cup of starchy pasta water before draining, then toss the undercooked pasta directly in the simmering sauce for that final minute to let it absorb flavor and cling perfectly.
9.Do I really need to use fancy Parmigiano-Reggiano, or can I use the cheap pre-grated parmesan in the green can?
For the best flavor and texture, freshly grated Parmigiano-Reggiano is absolutely worth it. That cheap pre-grated stuff in the green can is coated in anti-caking agents that keep it from melting smoothly into meatballs and sauce, leaving a weird, grainy texture. Grate your own right before use for that signature nutty, creamy, salty depth.
10.Why do some recipes soak breadcrumbs in milk for meatballs—do I need to do that?
That step, called making a panade, is one of the easiest ways to guarantee tender, not tough, meatballs. Soaking ½ cup of plain breadcrumbs in ¼ cup of whole milk for 5 minutes before mixing into your beef-pork blend creates a soft, moist base that keeps meat proteins from tightening up too much as they cook, so you never get rubbery bites.
11.Can I bake meatballs instead of pan-searing them for easier cleanup?
Totally! Arrange rolled meatballs on a parchment-lined baking sheet, and bake at 400°F for 15 minutes until browned on the outside, then transfer them to the sauce to finish simmering. You won’t get quite the same deep crust as pan-searing, but it cuts down on stovetop splatter and active time, which is perfect for busy weeknights.
12.How big should I roll the meatballs for this classic recipe?
For classic spaghetti and meatballs, aim for meatballs that are about 1.5 inches in diameter, roughly the size of a golf ball. That size is big enough to stay juicy through simmering, small enough to cook evenly all the way through, and easy to twirl on a fork with spaghetti. Roll them gently with light hands to avoid packing them too tight.
13.My tomato sauce always tastes too acidic—how do I fix that for this recipe?
If your crushed tomato sauce tastes sharp or overly acidic, skip the old myth of adding a ton of sugar. Instead, stir in 1 tablespoon of unsalted butter at the end of simmering, or a tiny pinch of baking soda (no more than 1/8 teaspoon, or it will taste soapy) to neutralize excess acid. A little extra Parmigiano-Reggiano also helps round out flavor.
14.Should I rinse my spaghetti after draining it?
Never rinse your spaghetti after draining for this dish! The starchy coating on the outside of cooked pasta is what helps the tomato sauce cling to every noodle, instead of sliding off and pooling at the bottom of your bowl. Rinsing is only for cold pasta salad, never for hot, sauced dishes like spaghetti and meatballs.
15.Can I use ground turkey or chicken instead of beef and pork for a lighter version?
You can, but you’ll need to adjust for the much lower fat content to avoid dry, bland meatballs. Use a blend of dark ground turkey or chicken (not lean breast meat) for more natural fat, add 2 tablespoons of olive oil or softened butter to the meat mix, and reduce simmer time to 20 minutes so lean meat doesn’t overcook.
16.How much pasta water should I add when tossing spaghetti with sauce, and why?
Start with ¼ cup of reserved starchy pasta water when you toss al dente spaghetti in the simmering sauce, adding more 1 tablespoon at a time as needed. The starchy water emulsifies with the tomato sauce and rendered fat from the meatballs to create a silky, glossy coating that sticks to every noodle, instead of a watery, separated sauce.
17.What’s the best way to serve this for that classic, restaurant-style finish?
After tossing the pasta in sauce with a splash of pasta water, plate twirls of spaghetti, top with 2-3 meatballs per serving, spoon a little extra sauce over the top, and add a fresh sprinkle of grated Parmigiano-Reggiano and a pinch of chopped fresh parsley if you have it. Skip dumping all meatballs on a big pile of pasta for more even, flavorful bites.

Comments (20)

2 days ago

OMG this is the exact spaghetti and meatballs recipe my Italian grandma used to make! The meatballs are so juicy, no dry crumbly mess here. My kids devoured two servings each and asked for it again next week for our Sunday family dinner. 10/10, no notes!

yesterday

That makes us so happy to hear! Juicy, non-dry meatballs are our #1 priority with this recipe, so glad your whole family loved it. Pro tip: make a double batch of meatballs to freeze for quick weeknight meals later!

3 days ago

Tried this for our neighborhood potluck last weekend and people were coming back for thirds! Only thing I tweaked was adding a little extra red pepper flake for a tiny kick, otherwise followed the recipe exactly. Wait, quick question — has anyone tried making the meatballs with half ground pork half ground beef?

2 days ago

I did that last time I made it! 50/50 beef and pork makes the meatballs even richer, I highly recommend it. I also tossed in a handful of grated parm into the meat mix, chef’s kiss.

2 days ago

Great question! The 50/50 beef and pork swap is absolutely delicious, it adds so much depth of flavor. The red pepper flake addition is a favorite tweak of ours too for anyone who likes a little heat!

5 minutes ago

As someone who’s still pretty new to cooking, I was nervous about the medium difficulty rating but this was totally doable! 55 minutes start to finish fit right between my classes, and I had leftovers for 3 days. SO good, way better than the jarred sauce and frozen meatballs I used to live on.

1 week ago

Game changer. I’ve been searching for a go-to spaghetti and meatballs recipe for years and this is it. The sauce has that perfect slow-simmered taste even though it doesn’t take all day to cook. My partner said it’s better than the Italian restaurant we go to for date night!

5 days ago

Same here! My husband said the exact same thing when I made this last month, we canceled our reservation at our usual spot last weekend just to make this again.

2 days ago

Has anyone adapted this for gluten free? I want to make it for my kid who has a celiac diagnosis but I don’t want the meatballs to fall apart without regular breadcrumbs.

yesterday

I used gluten free panko when I made this last week and it worked perfectly! No texture difference at all, the meatballs held up great even after simmering in the sauce.

yesterday

Great question! Gluten free panko or even crushed gluten free crackers work beautifully as a 1:1 swap for regular breadcrumbs here, no other adjustments needed. Hope your kid loves it!

2 weeks ago

Meal prepped this on Sunday and it held up all week in the fridge! The flavors actually got better each day as the sauce sat with the meatballs. Will be adding this to my regular rotation for busy work weeks.

5 days ago

Made this for my wife for our first anniversary dinner at home and she cried happy tears! I was worried I’d mess up the meatballs because I’ve never made them from scratch before, but the step-by-step instructions were super easy to follow. Only tiny issue: I overcooked the pasta a little because I got distracted toasting the garlic, oops.

3 days ago

Happy anniversary! That’s such a sweet milestone to celebrate with a homemade meal, we’re honored you picked this recipe. Next time, set a timer for the pasta 2 minutes before the package says al dente — it’ll keep cooking a little when you toss it with the hot sauce, so it comes out perfect every time!

2 days ago

Wait, can I make the meatballs a day ahead? I’m hosting a big family dinner on Saturday and want to get as much prep done Friday as possible so I’m not stuck in the kitchen the whole time guests are over.

yesterday

I did that for my birthday dinner last month! I rolled the meatballs and stored them on a baking sheet in the fridge overnight, then browned them and made the sauce the next day. Cut the cook time down so much, tasted exactly the same!

yesterday

Absolutely! You can either roll the raw meatballs and store them covered in the fridge for up to 24 hours before cooking, or fully cook the meatballs and sauce a day ahead and reheat gently on the stove before serving. It makes hosting so much less stressful!

3 days ago

This recipe is solid, but it was a little bland for my taste. I ended up adding extra garlic, a splash of red wine, and some Italian sausage to the sauce to amp up the flavor. Would still recommend as a base recipe for sure!

2 days ago

Oh the red wine addition is chef’s kiss! I add a half cup of chianti to my sauce every time I make this, it adds that depth I was missing on the first try too.

2 days ago

Thanks for the honest feedback! We love that you made it your own — adding a splash of dry red wine and a little extra garlic is a classic tweak that makes the sauce taste even more rich and complex. We’re glad you used the recipe as a great starting point!

1 week ago

Made this for my grandkids when they visited last weekend and they said it tastes just like the spaghetti I made for their parents when they were little. Brought back so many good memories. Perfect recipe, no frills, just good old fashioned comfort food.

30 minutes ago

I was worried this would be too heavy for my macro goals, but I swapped the regular pasta for whole wheat and used lean ground turkey for the meatballs and it still turned out amazing! Didn’t feel sluggish after eating it at all.

5 minutes ago

Love those smart swaps! Whole wheat pasta and ground turkey work so well here, we’re glad you were able to adjust the recipe to fit your nutrition goals without sacrificing flavor.

yesterday

Help! I tried making this last night and my meatballs totally fell apart while they were simmering in the sauce. What did I do wrong? I followed the ingredient measurements exactly, I think? :(

2 hours ago

Oh no, that happened to me the first time too! I didn’t let the meat mixture rest for 10 minutes after mixing it before rolling, and I stirred the sauce way too hard right after adding the meatballs. Be super gentle when you stir once they’re in there!

30 minutes ago

So sorry that happened! The two most common reasons meatballs fall apart are not mixing the meat mixture enough to get the breadcrumbs and egg fully incorporated (don’t be afraid to get your hands in there!) and stirring too vigorously right after adding them to the simmering sauce. Let them cook undisturbed for 10 minutes first before giving a very gentle stir, and they’ll hold together perfectly next time!

1 week ago

Made a giant batch of these meatballs to serve on hoagie rolls for our football watch party last Sunday and they were a hit! People were raving about the meatball subs all night. Didn’t even end up making the spaghetti part, just the meatballs and sauce, 10/10.

3 days ago

I added a half cup of ricotta to the meatball mix like my mom used to do and OH MY GOD, they were so moist and cheesy. 100% recommend adding that if you love a little extra cheese in every bite.

2 days ago

Ricotta in meatballs is a game changer! I’ve been doing that for years, it makes them so light and fluffy instead of dense. Can’t believe I forgot to do that last time I made this recipe, definitely adding it next round.

5 days ago

This is way more affordable than ordering takeout Italian for my family of 4! I calculated the total cost per serving and it was less than $3, which is wild for how good it tastes. Way better than the takeout that costs $18 a plate near my house.

3 days ago

Right?! I did the math too, and for the cost of one takeout spaghetti dinner I can make this entire recipe twice. It’s become our go-to Friday night meal instead of ordering out, we’ve saved so much money.

2 days ago

That’s one of our favorite things about this recipe! It’s made with simple, affordable pantry and fridge staples, but tastes like a restaurant-quality meal. We love that it’s become your Friday night tradition!

yesterday

Wait, has anyone tried browning the meatballs in the air fryer instead of pan frying them? I hate cleaning up grease splatters from the stove, so if that works it would make this recipe 10x easier for me.

2 hours ago

Great hack! You can absolutely brown the meatballs in an air fryer at 400°F for 8-10 minutes, flipping halfway through, before adding them to the sauce to simmer. Cuts down on stovetop mess perfectly, and the meatballs get a nice crispy outside!

2 weeks ago

Doubled the recipe for my son’s soccer team end-of-season potluck and there was not a single bite left. Even the picky eaters on the team came up to ask me for the recipe. Total home run.

2 days ago

I could drink this marinara sauce straight from the pot, no joke. The balance of garlic, tomato, and herbs is perfect, no weird sugary sweet sauce like some recipes have. I’m gonna use this sauce recipe for all my pasta dishes from now on, not just spaghetti and meatballs!

yesterday

I used this sauce for my lasagna last week and it was incredible! So much better than the jarred sauce I usually use, and it didn’t take any extra effort. Total game changer for all my Italian recipes.

1 week ago

Wondering if I can adapt this to the slow cooker? I work 10 hour days so I love being able to throw dinner in the crockpot before I leave and have it ready when I get home.

5 days ago

You definitely can! Brown the meatballs first, then add all the sauce ingredients and meatballs to your slow cooker, cook on low for 4-6 hours. Cook the pasta separately when you get home, and dinner is ready! Perfect for busy work days.

just now

My 7 year old who only eats chicken nuggets and mac and cheese asked for SECONDS of this. I almost fell out of my chair. No weird chunks in the sauce, the meatballs are tender, the pasta is perfect. This is gonna be a weekly staple in our house for sure.