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.
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
Tools for this recipe
Check out Natasha’s favorite kitchen essentials, gadgets, and cookware!
- I find it easiest to mince garlic with a garlic press so that you don’t even need to peel the cloves.
- This Staub 5.5 quart Dutch oven is the one I used for this recipe.
- I recommend testing several meatballs with an instant read meat thermometer to ensure they’re at least 165F. If not, let them simmer for a bit longer.
How to make spaghetti and meatballs
This is an overview with step-by-step photos. Full ingredients & instructions are in the recipe card below.
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.
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.
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.
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!
- 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.
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.
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!
Spaghetti and Meatballs
- 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
- 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
- 1 pound uncooked spaghetti see note
- Torn/chopped fresh basil optional, to taste
- 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.
- 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 is provided as a courtesy only and should be construed as an estimate rather than a guarantee. Ingredients can vary and Salt & Lavender makes no guarantees to the accuracy of this information. It includes the spaghetti (just over 2.5 oz uncooked/person).
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.