Spaghetti and meatballs never goes out of style.
It’s the dinner that shows up for Sunday suppers, birthday parties, and cold weeknights when nothing else sounds right.
Pillowy beef meatballs with a deeply golden sear, simmered gently in a rich garlicky San Marzano tomato sauce until they’re glistening and tender, then tossed with al dente spaghetti and finished with fresh basil and a shower of Parmesan.
It’s comfort food in its purest form, and it’s ready in about an hour — including the sauce.
What separates great spaghetti and meatballs from forgettable ones comes down to three things: the meatballs, the sauce, and the finish. The meatballs get their tenderness from a panade made with torn bread and milk, which keeps the beef juicy instead of dense and bouncy.
The sauce gets its depth from a brick-red cookdown of tomato paste and a simmer that lets the tomatoes concentrate.
Finish the pasta in the sauce with a splash of starchy pasta water, which makes every strand taste as if it came from the pot instead of sitting next to it.
This is the version that earns a permanent spot in the rotation. It’s easy enough for a weeknight, special enough for a Sunday dinner, and it makes incredible leftovers the next day.
Serve it with garlic bread and a simple green salad, and you have a plate that tastes like a neighborhood Italian restaurant without leaving the house.
Why This Recipe Works

A few small decisions make this spaghetti and meatballs taste like the version from your favorite Italian restaurant:
Use a Panade, Not Breadcrumbs Alone. A panade is a paste made from torn bread and milk, and it’s the secret to tender meatballs. The bread absorbs the milk, creating a soft, moist interior that stays juicy through searing and simmering. Panko or dried breadcrumbs alone soak up moisture from the meat and leave you with dense, dry meatballs.
Use 80/20 Ground Beef, Not 90/10. Meatballs need fat to stay juicy. 80/20 gives you the right balance of flavor and tenderness. If you use 90/10, the meatballs will be noticeably drier. To stretch the beef, combine 1 lb of 80/20 with ½ lb of ground pork, as many Italian delis do.
Sear the Meatballs Briefly to Set the Crust, Then Finish Them in the Sauce. A quick high-heat sear gives the meatballs a golden crust and a savory depth you can’t get from simmering alone. But moving soft panade meatballs around a skillet for too long breaks them apart. Sear for 2 to 3 minutes per side, just enough to set the crust, then transfer them to a plate and finish cooking them gently in the simmering sauce. They hold their shape and stay pillowy-soft.
Drain the Rendered Beef Fat Before Building the Sauce. Searing 1½ lbs of 80/20 beef renders a significant amount of tallow. If you add olive oil on top and build the sauce without draining, you end up with an oily orange layer floating on the tomatoes. Pour off all but 1 tablespoon of the rendered fat, then cook the onions and garlic in that reserved beef fat with a touch of olive oil. The sauce comes out rich and glossy, not greasy.
Cook the Tomato Paste Until It’s Brick-Red. Cook the tomato paste in the hot pan for 1 to 2 minutes, until it darkens from bright red to a deep brick-mahogany; this caramelizes its sugars and deepens its umami. Adding it raw straight from the can skips this step and leaves the sauce tasting flat.
Rely on Dried Oregano and Bay Leaf for the Long Simmer, Then Add Fresh Basil at the End. Adding dried basil early to a long simmer loses its delicate aromatics and can taste bitter or medicinal by the time the sauce is done. Oregano and bay leaf hold up to the heat and build the base flavor, and fresh basil gets folded in at the very end so the herbal note stays vibrant and sweet.
Finish the Pasta in the Sauce With Starchy Pasta Water. This is how Italian restaurants get their pasta to taste as if it came from the sauce instead of next to it. Cook the spaghetti one minute under the package directions, then finish it in the meatball sauce with a splash of starchy pasta water for one to two minutes. The pasta absorbs the sauce from the inside out, and the starch emulsifies the fat and tomato into a glossy coating that clings to every strand.
Spaghetti and Meatballs Recipe
Pillowy beef meatballs seared golden and gently simmered in a rich garlic-infused San Marzano tomato sauce, tossed with al dente spaghetti, starchy pasta water, and fresh basil.
Ingredients
For the Tender Beef Meatballs
- 1½ lbs 80/20 ground beef (or 90/10 for a lighter version)
- 2 slices white sandwich bread, crusts removed, torn into small pieces
- ¼ cup whole milk
- 1 large egg, beaten
- ½ cup freshly grated Parmesan
- 3 cloves garlic, minced
- 1 tsp kosher salt
- ½ tsp freshly ground black pepper
- 1 tsp dried oregano
- ¼ tsp red pepper flakes (optional)
- 2 tbsp fresh flat-leaf parsley, finely chopped
- 1 tbsp olive oil, for searing
For the Rich San Marzano Tomato Sauce
- 1 tbsp extra-virgin olive oil
- 1 small yellow onion, finely diced
- 4 cloves garlic, minced
- 2 tbsp tomato paste
- 1 can (28 oz) crushed San Marzano tomatoes
- 1 can (15 oz) tomato sauce
- 1 tsp dried oregano
- ½ tsp kosher salt
- ¼ tsp freshly ground black pepper
- ¼ tsp red pepper flakes (optional)
- 1 bay leaf
For the Spaghetti and Assembly
- 1 lb spaghetti
- ½ cup reserved starchy pasta water
- ¼ cup fresh basil leaves, torn
- Freshly grated Parmesan, for serving
Instructions
- Make the panade. In a small bowl, combine the torn bread and milk. Let it sit for 5 minutes, until soft, then mash with a fork into a smooth paste.
- Mix the meatball base. In a large bowl, combine the ground beef, panade, beaten egg, Parmesan, minced garlic, kosher salt, black pepper, oregano, red pepper flakes, and parsley. Gently mix with your hands just until combined. Do not overwork the meat, or the meatballs will become dense.
- Shape the meatballs. Roll the mixture into 12 to 14 uniform meatballs, about 1½ inches in diameter. Place them on a parchment-lined plate or sheet pan.
- Sear the meatballs and manage the fat. Heat 1 tablespoon of olive oil in a large Dutch oven or heavy skillet over medium-high heat. Add the meatballs in a single layer and sear for 2 to 3 minutes per side, until deeply golden on all sides. Transfer the meatballs to a plate. Drain off all but 1 tablespoon of the rendered pan fat.
- Build the sauce. Lower the heat to medium. Add the remaining 1 tablespoon of olive oil and the diced onion to the skillet. Cook for 4 minutes, until softened. Add the minced garlic and cook for 30 seconds, until fragrant. Stir in the tomato paste and cook for 1 to 2 minutes, stirring constantly, until it darkens to a brick-red mahogany color.
- Simmer the sauce. Pour in the crushed tomatoes and tomato sauce. Add the dried oregano, kosher salt, black pepper, red pepper flakes if using, and the bay leaf. Stir well, bring to a gentle simmer, and cook for 15 minutes to let the flavors meld.
- Simmer the meatballs in the sauce. Nestle the seared meatballs gently into the simmering sauce. Cover, reduce heat to low, and simmer gently for 15 minutes, spooning sauce over the meatballs halfway through, until they reach an internal temperature of 165°F.
- Cook the spaghetti. While the meatballs finish simmering, bring a large pot of heavily salted water to a boil. Cook the spaghetti until 1 minute shy of the package directions for al dente. Reserve ½ cup of starchy pasta water, then drain.
- Finish the pasta in the sauce. Transfer the drained spaghetti into the sauce pot with the meatballs. Pour in ¼ cup of the reserved pasta water and toss gently with tongs over low heat for 1 to 2 minutes, until the sauce clings glossily to the pasta. Remove the bay leaf and fold in the torn fresh basil.
- Serve. Plate into warmed pasta bowls, top with extra meatballs, and finish with a generous dusting of freshly grated Parmesan.
Notes
Each serving has about 720 calories and 42g of protein, with roughly 78g of carbs, 28g of fat, 6g of fiber, and 980mg of sodium. The protein comes from the beef meatballs and Parmesan. Use 90/10 ground beef and a smaller pasta portion to cut calories by about 100 per serving, or add an extra half pound of ground beef for a higher-protein version.
What to Serve With Spaghetti and Meatballs

This is a full meal on its own, but these sides round it out:
- Garlic bread or focaccia
- Simple green salad with lemon vinaigrette
- Roasted broccolini or sautéed spinach
- A glass of Chianti or Sangiovese
Make-Ahead, Storage, and Reheating

Make Ahead: You can make the meatballs and sauce up to 3 days in advance and refrigerate them together. The flavor deepens overnight, and the meatballs get even more tender.
Refrigerator: Store leftovers in a sealed container for up to 4 days. Keep the pasta and sauce separate if you can, so the pasta doesn’t soak up all the sauce.
Freezer: Freeze the meatballs and sauce in a sealed container for up to 3 months. Thaw overnight in the refrigerator and reheat gently on the stovetop.
Reheating: Reheat in a skillet over medium-low heat with a splash of water or broth. The microwave works, but the pasta can turn mushy if you reheat it too long.
Meal Prep: Portion the meatballs and sauce into containers and refrigerate for up to 4 days. Cook the spaghetti fresh or reheat with a splash of water.
Food Safety: Cook the meatballs to an internal temperature of 165°F. Keep leftovers refrigerated within 2 hours of cooking. Reheat to 165°F before serving.
Easy Variations

Baked Spaghetti and Meatballs. Skip the spaghetti finish and instead layer cooked spaghetti, meatballs, and sauce in a 9×13 baking dish. Top with mozzarella and Parmesan and bake at 375°F for 25 minutes, until bubbling and golden.
Beef Meatballs for Spaghetti With Pork. Use 1 lb of 80/20 ground beef plus ½ lb of ground pork. The pork adds fat and depth, and the meatballs come out noticeably juicier.
Spaghetti Recipes With Ground Beef and Italian Sausage. Substitute ½ lb of Italian sausage for ½ lb of the ground beef. The sausage brings fennel and spice, and the sauce tastes more like a classic Sunday gravy.
Homemade Spaghetti and Meatballs With Fresh Tomatoes. In peak summer, replace the crushed tomatoes with 3 lbs of fresh Roma tomatoes, blanched, peeled, and hand-crushed. Simmer for 30 minutes instead of 15.
Meatball Dishes With Polenta. Swap the spaghetti for creamy polenta. The meatballs and sauce spoon beautifully over the polenta, and it’s a great gluten-free option.
Frequently Asked Questions
What kind of ground beef is best for spaghetti and meatballs?
80/20 ground beef is the best choice. The fat keeps the meatballs juicy during searing and simmering. 90/10 works in a pinch, but the meatballs will be noticeably drier.
How do I keep my meatballs from getting tough?
Use a panade made from torn bread and milk instead of dried breadcrumbs, and don’t overmix the meat. Overmixing develops the proteins and turns the meatballs dense and bouncy.
Do I have to sear the meatballs before simmering them?
Yes, for the best flavor. The sear builds a golden crust that adds savory depth and helps the meatballs hold their shape in the sauce. Sear them briefly, then finish cooking them in the sauce.
Can I bake the meatballs instead of searing them?
Yes. Bake them on a parchment-lined sheet pan at 425°F for 12 to 15 minutes, until the outside is browned. Then finish them in the sauce for the last 15 minutes of simmering.
Why did my sauce turn out oily?
Searing the beef renders a lot of fat, and if you don’t drain it before building the sauce, you end up with a layer of oil on top of the tomatoes. Pour off all but 1 tablespoon of the rendered fat before the onions go in.
Why does my sauce taste bitter?
Dried basil added early in a long simmer loses its aromatics and can turn bitter. This recipe uses dried oregano and bay leaf for the long simmer and folds in fresh basil at the very end.
Can I make this in a slow cooker?
Yes. Sear the meatballs and make the sauce on the stovetop, then transfer both to a slow cooker and cook on low for 4 hours. Add the spaghetti fresh when serving.
Can I make this gluten-free?
Yes. Use gluten-free bread for the panade, gluten-free spaghetti, and check that your tomatoes, tomato paste, and Parmesan are gluten-free.
Can I make this dairy free?
Yes. Skip the Parmesan in the meatballs and use a dairy-free alternative for serving. Use unsweetened almond milk or oat milk in the panade.
How long does spaghetti and meatballs last in the fridge?
Up to 4 days in a sealed container. The flavor deepens overnight, and the meatballs get even more tender.
Can I freeze spaghetti and meatballs?
Yes. Freeze the meatballs and sauce together in a sealed container for up to 3 months. Thaw overnight in the refrigerator and reheat gently on the stovetop. Cook the spaghetti fresh.
How many meatballs per person?
Three to four meatballs per person is a generous portion with a pound of spaghetti.
Can I double the recipe?
Yes. Use a larger skillet or Dutch oven and sear the meatballs in two batches. Cook the sauce and pasta the same way.
More Ground Beef Recipes You’ll Love
- Creamy Beef and Bow Tie Pasta Recipe — One Pan, 35 Minutes, 38g Protein
- Chicken Cacciatore Crock Pot Recipe —Hands-Off, High-Protein Italian Dinner
- Bolognese Sauce Recipe (Authentic Italian Ragù, 3 Hours Hands-Off!)
- Cottage Pie Recipe — 24g Protein, Freezer-Friendly
Conclusion
This spaghetti and meatballs recipe is the Italian comfort food that earns a permanent spot in the rotation.
Pillowy beef meatballs with a golden sear, a rich garlicky San Marzano tomato sauce that comes together in 40 minutes, and spaghetti finished in the sauce so every strand tastes as it came from the pot.
The three things that make it work are these. Use a panade made from torn bread and milk so the meatballs stay tender, not dense.
Sear the meatballs briefly to set the crust, then finish them in the sauce so they stay pillowy and juicy. And finish the pasta in the sauce with a splash of starchy pasta water so it absorbs flavor instead of sitting next to it.
About 720 calories per serving. 42g of protein. Four servings. Ready in about an hour, freezer-friendly, and endlessly adaptable as baked spaghetti and meatballs, a beef-and-pork version, Sunday gravy with sausage, or a polenta bowl.
Pin it to your ground beef recipes board and make it your new go-to Italian dinner.