This post may contain affiliate links. Please read our disclosure policy.

This spaghetti and meatballs recipe has that classic rich taste you love! It’s got juicy meatballs in a flavorful tomato sauce, and everything is made from scratch in this Italian-American favorite.

Can’t get enough meatballs? You’ll love my Italian Meatball Soup and Easy Meatball Casserole.

a bowl of spaghetti and meatballs with parmesan

Why you’ll love it

Is there anything better than homemade spaghetti and meatballs? When you dig into a big bowl of it, the love and care put in is obvious. Our recipe is made completely from scratch and delivers on flavor, so it’s a wonderful choice for Sunday supper.

You won’t mind spending a little more time in the kitchen, especially since the sauce and meatballs are freezer friendly for meals you’ll look forward to eating later on. A lot of it is hands-off, and simmering the sauce builds the gorgeous flavors. This is a straightforward recipe for when only a cozy dinner will do!

What you’ll need

For the sauce

  • Olive oil and butter – for sautéing
  • Onion and garlic – the aromatic base. I like Vidalia (sweet) onions best.
  • Tomatoes – we’re using cans of whole tomatoes. I recommend San Marzano plum tomatoes from Italy. The taste just can’t be matched!
  • Italian seasoning and dried oregano – our seasoning blend to infuse tons of flavor. Italian seasoning is a blend with herbs like rosemary and thyme.
  • Sugar – it’s an old chef’s trick that I wouldn’t skip here. A pinch of sugar cuts down the acidity of the tomatoes to balance the sauce, and it doesn’t make it sweet.
  • Red pepper flakes – they’re optional, but the amount listed just brings a gentle warmth and not spiciness

For the meatballs

  • Breadcrumbs – we’re using Italian seasoned ones
  • Milk – whole milk plus breadcrumbs makes what’s called a panade, which makes the meatballs stay moist, light, and tender
  • Ground beef and pork – avoid using extra lean; anywhere in the 80-85% range is good for additional flavor from a bit more fat
  • Egg – to bind everything together
  • Minced garlic and onion powder – to add savory flavor along with salt & pepper
  • Parsley – fresh parsley gives a burst of freshness
  • Parmesan – always grate your own
ingredients for spaghetti and meatballs on a marble surface

Tools for this recipe

Check out Natasha’s favorite kitchen essentials, gadgets, and cookware!

How to make spaghetti and meatballs

This is an overview with step-by-step photos. Full ingredients & instructions are in the recipe card below.

tomatoes in a bowl and a soup pot with onion and garlic

Prep all the ingredients beforehand. Add the tomatoes along with the liquid from the cans into a bowl, and break them up with your hands. In a soup pot, sauté the olive oil, butter, and onion, followed by the garlic.

simmering tomato sauce in a pot next to a bowl of panade

Stir in the tomatoes, Italian seasoning, oregano, sugar, and red pepper flakes. Cover the pot, let it come to a boil, and then simmer for 30 minutes. Meanwhile, make the panade for the meatballs by mixing the milk and breadcrumbs into a paste.

meatball mixture in a bowl and forming meatballs

Add the remaining meatball ingredients to the bowl, and delicately combine with your hands without overworking the mixture. Form into around 18 meatballs that are 1 and ½ inches, and place on a plate or parchment paper.

adding meatballs to a pot of tomato sauce

Gently place the meatballs in the pot so they’re covered in sauce. Continue simmering until they’re cooked through. Season with salt & pepper as needed, and serve with spaghetti, freshly torn basil, and grated parmesan!

Helpful tips

  • Try not to overwork the meatball mixture; this can lead to rubbery meatballs. 
  • The meatballs are not seared in this recipe. We tested both ways and preferred adding them directly into the sauce. Many Italian American restaurants don’t sear their meatballs for their spaghetti and meatballs recipes, and they just melt in your mouth like these.
  • With that said, if you feel strongly about searing them, you can do that in a skillet ahead of time prior to adding them to the sauce. You may want to coat them in flour (shake off any excess) to prevent them sticking to the skillet as they are quite moist and fairly delicate.

Substitutions and variations

  • Our kitchen has tested this recipe multiple times to ensure it works as written, and tomato sauces can be tricky despite their simplicity, so I’d err on the side of following the recipe as-is (at least the first time you make it). With that said, minor tweaks like adding in more herbs or garlic are totally fine!
  • For the meatballs, panko breadcrumbs may be swapped for Italian seasoned ones. If using regular unflavored breadcrumbs, I suggest adding a 1/2 teaspoon or so of dried Italian seasoning to compensate.
  • I recommend using two kinds of meat for the best flavor and texture for the meatballs. Instead of ground pork, use Italian sausage meat or even ground veal if you like.

Pro tip

  • While we love making this homemade tomato sauce to get back to the basics, if you’re a little short on time, try my Easy Meatball Recipe with a jar of your favorite marinara sauce for a shortcut or this Easy Meat Sauce instead.

Leftovers and storage

  • If possible, I recommend boiling up fresh spaghetti vs. cooking a lot of it and mixing it all with the sauce and meatballs if you anticipate leftovers. You can definitely eat leftover cooked spaghetti, but it will soften and soak up some of the sauce. If you go that route, I recommend reheating it over a low heat and eating it within a day or two.
  • The meatballs and sauce will keep for 3-4 days in the fridge in an airtight container no problem.
  • Freeze meatballs and sauce together in Tupperware containers. Do individual portions or however many you think you’ll be serving in a meal. Thaw in the fridge overnight, and warm on the stove slowly over a low heat. Serve with freshly boiled spaghetti.

What to serve with spaghetti and meatballs

closeup of a wooden spoon with a meatball in tomato sauce

Let me hear what you think of this classic spaghetti and meatballs in the comments below and leave a star rating, and tag me on Instagram #saltandlavender with your creations!

a bowl of spaghetti and meatballs with parmesan
5 from 5 votes

Spaghetti and Meatballs

This spaghetti and meatballs recipe has that classic rich taste you love! It's got juicy meatballs in a flavorful tomato sauce, and everything is made from scratch in this Italian-American favorite.
Prep: 20 minutes
Cook: 1 hour 10 minutes
Total: 1 hour 40 minutes
Servings: 6

Ingredients 

Sauce:

  • 2 (28 ounce) cans whole tomatoes (with juices) see note
  • 1 tablespoon olive oil
  • 1 tablespoon butter
  • 1 medium onion chopped
  • 4 cloves garlic minced
  • 1 teaspoon Italian seasoning
  • 1 teaspoon dried oregano
  • 1 teaspoon granulated sugar
  • 1/4 teaspoon crushed red pepper flakes optional (or add more, to taste)
  • Salt & pepper to taste

Meatballs:

  • 1/3 cup Italian seasoned breadcrumbs
  • 1/3 cup milk whole milk recommended
  • 1 pound ground beef see note
  • 1/2 pound ground pork or ground Italian sausage
  • 1 large egg
  • 3/4 cup freshly grated parmesan cheese + more for serving
  • 1/4 cup (packed) fresh parsley chopped finely
  • 4 cloves garlic minced
  • 1 teaspoon salt
  • 1/2 teaspoon onion powder
  • Pepper to taste

For serving:

  • 1 pound uncooked spaghetti see note
  • Torn/chopped fresh basil optional, to taste

Instructions 

  • I recommend prepping all ingredients before getting started to make it easier. The meatballs and sauce both use minced garlic, so be sure to mince it all at once (I use a garlic press to make this go fast). Add the canned tomatoes (with juices) to a large bowl and use your hands to break the whole tomatoes up.
  • To start the sauce, add the olive oil, butter, and onion to a soup pot or Dutch oven and sauté over medium heat for 5 minutes.
  • Stir in the garlic and cook for 30 seconds.
  • Add in the tomatoes, Italian seasoning, oregano, sugar, and red pepper flakes. Give it a good stir. Once the sauce starts to bubble, cover the pot with the lid slightly open and reduce the heat and simmer for 30 minutes (adjust between medium-low and low heat as needed to maintain a constant simmer).
  • While the sauce is cooking, make the meatballs. Add the breadcrumbs and milk to a fairly large prep bowl. Mix/mash together until you've got a paste.
  • Add the remaining meatball ingredients to the bowl. Using your hands, mix it together and then form about 18 (1 ½-inch) meatballs. Don't over-mix or pack them too tightly, and use a delicate touch. Place the meatballs on a couple of plates or a parchment paper lined baking sheet as you go along for easy clean-up.
  • Give the sauce a stir, then place the meatballs in the pot and gently arrange them so they're submerged in the sauce. Continue simmering (lid slightly open) for another 35-45 minutes or until they're cooked through (165F). You may need to increase the heat to get it going again, then reduce the heat and adjust as needed to maintain a simmer.
  • Give the sauce a taste and season with salt & pepper as needed (I'm generous with both). Serve with cooked spaghetti, more freshly grated parmesan cheese, and some fresh basil if desired.

Notes

  • The meatball prep time is counted within the cook time since the sauce is cooking while you’re prepping the meatballs. 
  • I recommend using San Marzano plum tomatoes for best flavor.
  • Fattier ground meats equal moister and more flavorful meatballs, so avoid anything that’s extra lean (80-85% lean is good).
  • If you have a strong preference, feel free to brown the meatballs in a skillet ahead of adding them to the sauce, but our kitchen tested both methods and the meatballs are tasty either way (and this saves time and extra dishes)!
  • 1 pound of spaghetti feeds 6, so I would not make the full amount if you’re not planning on eating it all right away. Boil fresh pasta when you’re warming up leftover meatballs & sauce.
  • Nutritional information includes the spaghetti (just over 2.5 oz uncooked/person).

Nutrition

Calories: 772kcal, Carbohydrates: 78g, Protein: 38g, Fat: 34g, Saturated Fat: 13g, Polyunsaturated Fat: 3g, Monounsaturated Fat: 14g, Trans Fat: 1g, Cholesterol: 129mg, Sodium: 1187mg, Potassium: 1118mg, Fiber: 6g, Sugar: 11g, Vitamin A: 806IU, Vitamin C: 31mg, Calcium: 288mg, Iron: 6mg

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

© Salt & Lavender Inc. Content and photographs are copyrighted. Sharing this blog post is much appreciated, but copying and pasting full recipes without authorization to social media is strictly prohibited.

Leave a star rating and comment below!

Hi! I’m Natasha.

Salt & Lavender is a recipe blog with a focus on delicious comfort food using everyday ingredients. Beat the weekday grind with hundreds of easy-to-follow and hassle-free recipes!

Leave a comment

Please leave a recipe rating!

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

Recipe Rating




This site uses Akismet to reduce spam. Learn how your comment data is processed.

12 Comments

  1. I made this tonight for a cozy Sunday dinner, I did not sway from the recipe and I’ll definitely be putting it into my rotation. The meatballs were my favorite part so tender. You definitely need to be gentle once they are in the sauce and you stir. Definitely try this

  2. 5 stars
    I made these meatballs today, and they are delicious. However, as my mother used to do, I always tweak a recipe a bit. I added hot Italian sausage along with the ground beef, additional Italian seasoning, and fresh onion. Even though I did use the onion powder, my mom always said fresh onion is always best. I did brown the meatballs prior to adding into the sauce (I used Paul Newman’s sauce, 2 jars) and added the meatballs to the sauce after browning. Really good meatballs! I will use this recipe again.

  3. 5 stars
    I am back on this recipe page to make this for the second time. This recipe is so easy to follow and I was very impressed with how good it was! Far better than shortcut spaghetti ..No shame in a jar of sauce & some frozen meatballs when you need them but its so satisfying learning how to make these things from scratch. Thank you for yet again another simple and delicious dinner recipe for my family.

    1. I’m thrilled you enjoyed it, Lauren!! It’s one of my personal favorites too. Thanks so much for your review – I appreciate it!

  4. 5 stars
    another great recipe! the milk and breadcrumbs for the meatballs didn’t really form a paste, I think there was too much milk so I adjusted with more breadcrumbs. They turned out great and I followed instructions exactly as you listed. The sauce was really delicious and my picky son went back for seconds! Perusing your recipes now for what we are going to have tonight and there was enough leftover of the spaghetti and meatballs to freeze and enjoy next week :).

  5. I didn’t make this recipe. I’ve been making sauce for years. My mom is right off the boat. She still has an accent all these years later. I make it pretty much the same. Except for the meatballs. I never used milk. I use ricotta. About a quarter pound per pound of meat.