This classic spaghetti and meatballs recipe is the ultimate comfort food. Juicy, golden-seared meatballs made with a flavorful blend of beef and pork are nestled in a slow-simmered tomato-basil sauce, then topped with crispy pangrattato (toasted breadcrumbs) for a satisfying crunch.

Save this recipe!
Get this sent to your inbox, plus new recipes from us every week!
Please enable JavaScript in your browser to complete this form.
A bowl of spaghetti and meatballs topped with pangratto.

There’s something undeniably comforting about a big bowl of spaghetti and meatballs. It’s nostalgic, hearty, and full of rich, tomatoey flavor, and when made from scratch, it becomes something truly special.

This version is layered with depth thanks to a slow-simmered tomato sauce, tender, flavorful meatballs, and a crispy pangrattato (toasted breadcrumb topping) that adds a final touch of crunch and contrast. Perfect for a cozy Sunday dinner or a make-ahead weeknight meal, this spaghetti and meatballs recipe is classic Italian-American comfort at its best. 

Ingredients and Notes 

See the recipe card below for the complete ingredients list and instructions. 

Tomato Sauce

  • Olive Oil – This helps sauté the aromatics, creating a rich, caramelized effect. 
  • Onion and Garlic – These infuse the sauce with a sweet, savory flavor. Make sure to use whole, fresh garlic cloves, and mince them yourself. Pre-minced garlic just won’t have the same flavor. 
  • Seasonings – Salt and pepper enhance the rest of the ingredients. Then, I include crushed red pepper flakes for a touch of heat. Feel free to add as little or as much as you like, depending on your spice tolerance. 
  • Double Concentrated Tomato Paste – This is a more intense version of regular tomato paste and creates a bolder, more concentrated tomato flavor. 
  • Whole Peeled Tomatoes – I prefer to use whole peeled tomatoes instead of crushed tomatoes, and use what I call the Italian grandma method to crush them with my hands, creating a chunkier texture. 
  • Fresh Basil – Look for vibrant green leaves free from brown spots or discoloration. 
  • Parmesan Rind – Using the entire rind is my secret to infusing my sauce with an incredible cheesy, umami flavor. 
  • Sugar – Some tomatoes are more acidic than others. So, give your sauce a taste test, and add granulated sugar as needed to help balance the flavor. 

Meatballs

  • Italian Breadcrumbs – These act as a binder, helping the meatballs hold their shape while contributing to the savory flavor of the dish. 
  • Whole Milk – I use this to hydrate the breadcrumbs, making them easier to mix. 
  • Pecorino Romano – This is a hard, salty Italian cheese. If you can’t find Pecorino Romano, Parmesan cheese will also work. 
  • Eggs – These add moisture and richness and act as a binder, helping the meatballs hold their shape and preventing them from drying out. 
  • Fresh Basil – I like to include julienned basil in my meatballs to add a pop of fresh flavor. It also helps create a cohesive flavor profile once the meatballs are paired with the tomato sauce. 
  • Meat – I prefer to use a combination of ground beef and ground pork. I always look for slightly fattier meat, using 80/20 percent beef for more moisture and flavor. I find using anything leaner causes the meatballs to taste a little dry. 
  • Salt and Pepper – Adjust to taste. 
  • Olive Oil – Use this to sear the meatballs. 

Pangrattato and Serving

  • Spaghetti – I use boxed spaghetti, but you can also make homemade pasta if you have the time. 
  • Toppings – I always top my spaghetti and meatballs with Pecorino Romano and fresh basil before serving. 
  • Olive Oil – This toasts the breadcrumbs, creating a crispy topping. 
  • Panko Breadcrumbs – Toasted until golden and crisp, these create a nice, light topping that adds a bit of texture to the otherwise soft components of the dish. 

How to Make Spaghetti and Meatballs

Onions and garlic sautéing in a Dutch oven.
1. Cook. Heat olive oil in a large Dutch oven over medium heat, and add the onion. Season with salt, stir to combine, and cook until translucent. Then, add the garlic, and cook just until the edges begin to brown. 
Tomato paste being stirred into a garlic and onion mixture.
2. Combine. Remove half the onion and garlic mixture, and add the tomato paste and red pepper flakes, stirring to combine. Continue to cook, stirring frequently, until the tomato paste begins to darken and turns brick red in color. 
Whole peeled tomatoes being crushed with hand over a Dutch oven.
3. Simmer. Next, add the tomatoes, crushing them with your hands. Then, stir in the basil and Parmesan rind. Season with salt, pepper, and sugar as needed. Then, reduce the heat to low, cover, and simmer to marry the flavors. 
Breadcrumbs, milk, cheese, eggs, onions, and garlic being whisked.
4. Whisk. Add the breadcrumbs, milk, cheese, eggs, and the reserved onion and garlic mixture to a bowl, and whisk to combine. Then, set aside to allow the mixture to hydrate. 
A meatball mixture being mixed in a bowl with gloved hands.
5. Combine. Add the ground beef, pork, basil, salt, and pepper to the breadcrumb mixture, and mix with your hands. 
Raw meatballs being portioned and placed on a sheet tray.
6. Portion. Divide the meatball mixture into equal-sized balls, and gently roll them between your palms before transferring them to a plate or sheet tray. 
Meatballs searing in a skillet.
7. Sear. Heat a large stainless steel or cast iron skillet over medium-high heat, add oil, and wait for it to shimmer. Then, add half of the meatballs to the pan, and cook on all sides until golden brown. Transfer the meatballs to a plate, and repeat, searing them all. 
Meatballs simmering in tomato sauce in a Dutch oven.
8. Cook. Add the meatballs to the simmering tomato sauce, gently folding them into the liquid, covering them completely. Then, cook until the internal temperature reaches 155°F (68°C). Remove the Dutch oven from the heat and set aside. 
A pangratto (breadcrumb) topping browning in a skillet.
9. Toast. Heat oil in a medium skillet over medium heat. Once lightly shimmering, add the breadcrumbs, and toss to combine. Cook, stirring frequently, until the breadcrumbs are deeply golden brown. Then, remove the skillet from the heat. 
Cooked spaghetti being lifted from a pot of water.
10. Boil. Bring a large pot of water to a boil, and season generously with salt. Add the pasta, and cook just under al dente. 
Spaghetti sauce simmering in a Dutch oven.
11. Simmer. Bring the meatballs and tomato sauce back up to a simmer. Then, transfer the pasta to the sauce, and shake the pot continuously, coating the pasta in the sauce. Continue to cook until the pasta absorbs the sauce and cooks to al dente. 
A plate of spaghetti and meatballs.
12. Serve. Transfer the spaghetti and meatballs to a large serving platter. Add Pecorino cheese, additional basil, and the pangrattato topping, and enjoy! 

Nick’s Tips for Success

  • Simmer the sauce low and slow. I always let my tomato sauce simmer for at least an hour. Trust me. It’s worth the wait! This is the best way to meld the flavors, creating a spaghetti sauce that’s far better than anything you’ll find in the store. 
  • Avoid overmixing the meatballs. I highly recommend using your hands to mix the meatballs just until the ingredients are evenly distributed. The mixture should not become mushy, or your meatballs will be tough and rubbery. 
  • Portion the meatballs evenly. For the most accurate results, use a food scale or cookie dough scoop to create equal-sized meatballs. This allows for even cooking.
  • Don’t overcook the pasta. The spaghetti will continue to cook when combined with the sauce. So, it’s crucial to cook it just under al dente, or it will overcook and become too soft. 
A fork holding a meatball above a bowl of spaghetti and meatballs.
4.84 from 6 votes

Spaghetti and Meatballs Recipe

This homemade spaghetti and meatballs recipe is one of my all-time favorite comfort food dinners. The meatballs are tender and flavorful, the tomato-basil sauce is rich and cozy, and the crispy pangrattato on top adds the perfect crunch. It’s simple, satisfying, and always a hit!
Servings: 8 servings
A bowl of spaghetti and meatballs topped with pangratto.
Prep Time: 30 minutes
Cook Time: 1 hour 40 minutes
Total Time: 2 hours 10 minutes
Save this recipe!
Get this sent to your inbox, plus new recipes from us every week!
Please enable JavaScript in your browser to complete this form.

Equipment

  • 1 Large Dutch Oven
  • 1 Large Mixing Bowl
  • 1 Large Stainless Steel or Cast Iron Skillet
  • 1 Plate
  • 1 Meat Thermometer
  • 1 Medium Skillet
  • 1 Large Pot
  • 1 Pair of Kitchen Tongs

Ingredients 

For the Tomato Sauce

  • ¼ cup (54 gram) olive oil
  • 2 (300 gram) medium onion, finely chopped
  • 6 (30 gram) garlic clove, peeled and finely chopped
  • ¼ cup ( ounce) double concentrated tomato paste
  • pinch crushed red pepper flakes
  • 2 (28 ounce) cans whole peeled tomatoes
  • 1 (20 gram) small bunch basil
  • Parmesan rind, optional
  • kosher salt and black pepper, to taste
  • sugar, if needed

For the Meatballs

  • ¼ cup (30 gram) Italian breadcrumbs
  • cup (113 gram) whole milk
  • ¼ cup (40 gram) Pecorino Romano or Parmesan cheese, finely grated
  • 2 large egg
  • 1 pound (475 gram) ground beef, 80/20
  • 1 pound (475 gram) ground pork
  • ¼ cup (6-12 gram) fresh basil , julienned
  • kosher salt and black pepper, to taste
  • ½ cup (120 gram) olive oil

For the Pangrattato

  • 1 tablespoon (14 gram) olive oil
  • cup (45 gram) panko breadcrumbs

For Serving

  • 1 (1 pound / 454 gram) box spaghetti
  • Pecorino Romano or Parmesan cheese, freshly grated
  • basil

Instructions 

For the Tomato Sauce

  • In a large Dutch oven over medium heat, add the olive oil and onion. Season with salt. Then, stir to combine.
    ¼ cup olive oil
  • Cook the onion until mostly translucent, four to five minutes. Add the garlic, and cook for one to two minutes, or until the edges of the garlic just begin to turn light brown. Remove half of the onion and garlic, and reserve for the meatballs.
    6 garlic clove
  • Add the tomato paste and red pepper flakes, and stir to combine. Cook for two to three minutes, stirring frequently, or until the tomato paste turns a darker, brick red color.
    ¼ cup double concentrated tomato paste, pinch crushed red pepper flakes
  • Add the tomatoes, crushing them with your hands as you put them into the Dutch oven. Add the basil and Parmesan rind, and stir to combine.
    2 (28 ounce) cans whole peeled tomatoes, 1 small bunch basil, Parmesan rind
  • Season with salt and pepper, and sugar, if the sauce is too acidic.
    kosher salt and black pepper, sugar
  • Reduce the heat to low and cover. Simmer for one hour, or until the flavors have married.
  • Remove from the heat, and keep covered.

For the Meatballs

  • In a large mixing bowl, add the breadcrumbs, milk, Pecorino or Parmesan, cooled onion mixture, and eggs. Whisk to combine, and set aside to hydrate for ten minutes.
    ¼ cup Italian breadcrumbs, ⅓ cup whole milk, ¼ cup Pecorino Romano or Parmesan cheese, 2 large egg
  • Add the ground beef and pork, as well as the basil, salt, and pepper. Using your hands, gently mix until combined.
    ¼ cup fresh basil, 1 pound ground beef, 1 pound ground pork, kosher salt and black pepper
  • Divide the mixture into equal-sized balls, two tablespoons in size. Gently roll them between two palms and place them on a plate or sheet tray.
  • Preheat a large stainless steel or cast iron skillet over medium-high heat. Add the remaining olive oil, and once shimmering, add half of the meatballs to the pan.
    ½ cup olive oil
  • Cook for four to five minutes, or until a deeply golden brown crust forms. Flip the meatballs and repeat the same process.
  • Once the other side is deeply golden brown, transfer the meatballs to a plate. Repeat the process, searing all the meatballs.
  • Add the meatballs to the simmering sauce, and gently fold the meatballs into the sauce. Cook for 15-20 minutes, or until the internal temperature of the meatball reaches 155°F (68°C).
  • Remove from the heat and cover until ready to add the pasta.

For the Pangrattato

  • In a medium skillet over medium heat, add the olive oil. Once lightly shimmering, add the breadcrumbs, and toss to combine.
    1 tablespoon olive oil, ⅓ cup panko breadcrumbs
  • Cook for three to four minutes, stirring frequently, or until the breadcrumbs are deeply golden brown.
  • Remove from the heat and set aside until ready to serve.

For Serving

  • Bring a large pot of water to a boil, and add a generous amount of salt. Add the pasta, and cook one to two minutes below al dente, according to the package directions.
    1 (1 pound / 454 gram) box spaghetti
  • Bring the meatballs back up to a simmer.
  • Using tongs, transfer the pasta from the large pot to the simmering sauce. Shake the pot continuously, coating the pasta in the sauce. Cook for another two to four minutes, or until the pasta has absorbed the sauce and cooked through.
  • Transfer to a large serving platter and top with Pecorino, additional basil, and pangrattato.
    Pecorino Romano or Parmesan cheese, basil

Video

YouTube video

Notes

Storage: Once cool, store leftovers in the refrigerator for up to four days. Or, freeze them for up to three months. 

Nutrition

Serving: 1serving, Calories: 813kcal, Carbohydrates: 60g, Protein: 33g, Fat: 49g, Saturated Fat: 13g, Polyunsaturated Fat: 5g, Monounsaturated Fat: 27g, Trans Fat: 1g, Cholesterol: 132mg, Sodium: 551mg, Potassium: 1002mg, Fiber: 5g, Sugar: 9g, Vitamin A: 558IU, Vitamin C: 24mg, Calcium: 172mg, Iron: 5mg

Nutrition information is automatically calculated, so should only be used as an approximation.

iconLike this recipe? Rate & comment below!

Frequently Asked Questions 

Can I make this recipe ahead of time? 

This dish is best served fresh, as the pasta can become slightly soggy the longer it sits. However, you can transfer leftovers to an airtight container and store them in the refrigerator for up to four days. Or, freeze them for up to three months. 

How should I reheat leftovers? 

Thaw frozen spaghetti and meatballs in the fridge overnight. Then, reheat the dish in the microwave or in a skillet over medium heat. 

icon

Nick DiGiovanni

Celebrity Chef & Content Creator

You May Also Like

4.84 from 6 votes

Leave a comment

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

Recipe Rating




6 Comments

  1. Nathan Johnson says:

    4 stars
    The meatballs are easily a 5/5. I found my mixture quite watery though, and very soft. The sauce was…. Just okay? Also very watery. I almost feel like 2x 28 oz cans of tomatoes was too much. It didn’t cook off much liquid either since it simmered with the lid on. Either way, kids ate it!

  2. Dylan Swanston says:

    5 stars
    The best spaghetti and meatballs I’ve ever had thank you for the recipe.

  3. Benjamin says:

    5 stars
    This recipe is awesome!!!

  4. Rasmus says:

    5 stars
    Super good I hope nick that you will visit estonia

  5. Minh Nguyễn says:

    5 stars
    Wow! D.E.L.I.C.I.O.U.S.

  6. Caleb decker says:

    5 stars
    Very good!