Last Saturday, the weather dipped just enough to make the house feel cozy. My husband had taken the kids out for the morning, and I enjoyed that rare moment of stillness in the kitchen.
I’d planned on a quick lunch, but something about the quiet pulled me toward comfort food. My eyes landed on the ground beef and a can of tomatoes in the pantry, and just like that, meatballs started forming in my hands. It wasn’t a grand plan—it was instinct. The kind that comes from years of feeding a family and knowing exactly what hits the spot.
There’s this wonderful rhythm to making spaghetti and meatballs. Mixing the meat by hand, browning it just right, stirring a slow-simmered sauce while the house fills with warmth and the smell of garlic. My daughter walked in as I was shaping the meatballs and said, “It smells like Sunday.” That made me smile, because she was right. It’s the kind of meal that feels like a little tradition, even on a whim.
I know some folks shy away from scratch-made sauce or meatballs, thinking it’s complicated—but it’s really not. And honestly, when you bite into one of those juicy, tender meatballs nestled in twirls of spaghetti, it makes every simple step worth it. It’s one of those dishes that never fails to gather everyone around the table, forks ready and plates wiped clean with the last piece of garlic bread.
Short Description
A hearty, family-friendly dish featuring tender beef and pork meatballs simmered in a rich tomato sauce, served over perfectly cooked spaghetti.
Key Ingredients
For the Meatballs:
- 1 lb ground beef (80/20)
- 1/2 lb ground pork
- 1/3 cup plain breadcrumbs
- 1/4 cup freshly grated Parmesan cheese
- 1/4 cup chopped fresh parsley
- 1 large egg
- 2 cloves garlic, minced
- 1/2 tsp dried oregano
- 1/2 tsp kosher salt
- 1/4 tsp ground black pepper
- 2 tbsp whole milk
For the Sauce:
- 2 tbsp olive oil
- 1 small yellow onion, finely chopped
- 3 cloves garlic, minced
- 1 (28 oz) can crushed tomatoes
- 1 (15 oz) can tomato sauce
- 2 tbsp tomato paste
- 1 tsp sugar (optional)
- 1/2 tsp salt
- 1/4 tsp black pepper
- 1/4 tsp red pepper flakes (optional)
- 1 bay leaf
- 1 tsp dried basil
- 1 tsp dried oregano
- Fresh basil or parsley for garnish
For the Pasta:
- 1 lb dried spaghetti
- 1 tbsp salt (for boiling water)
- Water for boiling
- Extra Parmesan for serving
Tools Needed
- Large mixing bowl
- Cookie scoop or spoon
- Large skillet or Dutch oven
- Saucepan or stockpot for pasta
- Wooden spoon
- Tongs or pasta fork
- Fine grater
Cooking Instructions
Step 1: Make the Meatball Mixture
In a large bowl, gently combine beef, pork, breadcrumbs, Parmesan, parsley, egg, garlic, oregano, salt, pepper, and milk. Mix until just combined. Don’t overwork it or the meatballs may be tough. Use a spoon or cookie scoop to form 1 ½-inch balls and place them on a tray.
Step 2: Brown the Meatballs
Heat 1 tbsp olive oil in a large skillet over medium heat. Add meatballs in batches, browning all sides for 7–8 minutes total. Don’t overcrowd the pan. Once browned, transfer to a plate.
Step 3: Build the Tomato Sauce
In the same skillet, add the remaining 1 tbsp olive oil. Sauté onion for 5 minutes until soft, then add garlic and cook for 1 more minute. Stir in tomato paste and cook for 2 minutes.
Add crushed tomatoes, tomato sauce, sugar (if using), salt, pepper, red pepper flakes, bay leaf, basil, and oregano. Stir and bring to a gentle simmer.
Step 4: Simmer with the Meatballs
Nestle the browned meatballs into the sauce. Cover and let simmer on low for 25–30 minutes. Stir occasionally. The sauce will thicken and the meatballs will finish cooking.
Step 5: Cook the Pasta
Meanwhile, bring a large pot of salted water to a boil. Add spaghetti and cook according to package instructions (typically 9–11 minutes). Reserve ½ cup of pasta water before draining.
Step 6: Combine and Serve
Either toss the drained spaghetti with the sauce and meatballs or plate the pasta and top with meatballs and sauce. Garnish with fresh herbs and extra Parmesan. Serve hot.
Why You’ll Love This Recipe
– A thick, aromatic tomato sauce made from scratch
– Feels fancy, but uses pantry staples
– Easy to batch-cook and freeze
– Kid-approved and perfect for family dinners
– Pairs beautifully with salad, garlic bread, or wine
– Comfort food that warms both body and heart
– Leftovers taste even better the next day
Mistakes to Avoid & Solutions
Overmixing the meatball mixture: This can lead to dense meatballs. Use a gentle hand or fork.
Skipping the browning step: Browning locks in flavor. Don’t rush or overcrowd the pan.
Undercooking the onion and garlic: Make sure they soften and release aroma to build flavor in the sauce.
Not seasoning the pasta water: The pasta needs salt—1 tbsp for a large pot helps it taste right.
Using too high heat for simmering: A gentle simmer prevents the sauce from reducing too fast and keeps meatballs tender.
Serving and Pairing Suggestions
Serve spaghetti and meatballs with garlic bread or cheesy toast
Add a simple green salad with balsamic vinaigrette
A glass of red wine like Chianti or a sparkling grape juice pairs nicely
Serve plated for family-style dinners or in bowls for cozy nights
Great for meal prepping or casual dinner parties
Storage and Reheating Tips
Store leftovers in an airtight container in the fridge for up to 4 days
Freeze meatballs and sauce (separately or together) for up to 3 months
Reheat on the stovetop over medium heat until warmed through
Add a splash of reserved pasta water or broth if the sauce thickens too much
Microwave individual portions with a loose cover for 2–3 minutes
FAQs
1. Can I use only beef instead of beef and pork?
Yes! Beef alone works fine, but pork adds extra moisture and flavor.
2. How do I know when the meatballs are fully cooked?
They should reach an internal temperature of 160°F and feel firm but springy.
3. Can I bake the meatballs instead of frying?
Absolutely. Bake at 400°F for 15–18 minutes on a parchment-lined sheet.
4. How can I make this recipe gluten-free?
Use gluten-free breadcrumbs and gluten-free pasta—easy swap!
5. Can I use fresh tomatoes instead of canned?
You can, but they’ll need to be peeled, seeded, and simmered longer to develop flavor.
Tips & Tricks
Wet your hands slightly when rolling meatballs to prevent sticking
Add a pinch of chili flakes to the sauce for extra kick
Use freshly grated Parmesan for better texture and taste
Let the meatballs rest a few minutes before serving to absorb flavor
Reserve pasta water—it helps the sauce cling better to the noodles
Recipe Variations
Turkey Meatballs:
Swap beef and pork for 1.5 lbs ground turkey. Add an extra tbsp of olive oil to keep it moist. Follow the same steps but lower cooking time slightly—about 20 minutes of simmering should do.
Vegetarian Version:
Use plant-based meat or lentil-walnut mix. Skip the browning and simmer gently in sauce for 25 minutes.
Cheese-Stuffed Meatballs:
Place a small cube of mozzarella in the center of each meatball before rolling. Bake or pan-sear, then simmer in sauce. The gooey center is always a surprise hit.
Spicy Arrabbiata Twist:
Increase red pepper flakes to ½ tsp and add a dash of smoked paprika for a fiery depth. Great for heat lovers.
Final Thoughts
Spaghetti and meatballs might be a classic, but in my kitchen, it’s more like a love letter written in sauce and steam. It’s the dish I turn to when I want the house to smell like memories waiting to happen. Some meals are just food—this one is a feeling. It tells my kids that they’re home, reminds my husband of dinners at his grandma’s table, and gives me a quiet joy as I sneak a meatball straight from the pot (because yes, I always do).
No matter how many recipes I try, this one stays bookmarked in my mind. It’s proof that the simplest ingredients can stir up the strongest connections. And maybe that’s why I keep making it—not because I have to, but because I love what it brings to the table: warmth, laughter, and the kind of silence that only comes when everyone’s too busy enjoying their meal to talk.

Classic Spaghetti And Meatballs
Ingredients
For the Meatballs:
- 1 lb ground beef 80/20
- ½ lb ground pork
- ⅓ cup plain breadcrumbs
- ¼ cup freshly grated Parmesan cheese
- ¼ cup chopped fresh parsley
- 1 large egg
- 2 cloves garlic minced
- ½ tsp dried oregano
- ½ tsp kosher salt
- ¼ tsp ground black pepper
- 2 tbsp whole milk
For the Sauce:
- 2 tbsp olive oil
- 1 small yellow onion finely chopped
- 3 cloves garlic minced
- 1 28 oz can crushed tomatoes
- 1 15 oz can tomato sauce
- 2 tbsp tomato paste
- 1 tsp sugar optional
- ½ tsp salt
- ¼ tsp black pepper
- ¼ tsp red pepper flakes optional
- 1 bay leaf
- 1 tsp dried basil
- 1 tsp dried oregano
- Fresh basil or parsley for garnish
For the Pasta:
- 1 lb dried spaghetti
- 1 tbsp salt for boiling water
- Water for boiling
- Extra Parmesan for serving
Instructions
- Mix beef, pork, breadcrumbs, Parmesan, parsley, egg, garlic, oregano, salt, pepper, and milk in a large bowl until just combined. Shape into 1½-inch balls and place on a tray.
- Heat 1 tbsp olive oil in a skillet over medium heat. Brown meatballs in batches for 7–8 minutes, turning to sear all sides. Set aside.
- In the same pan, heat remaining oil. Sauté onion for 5 minutes, add garlic for 1 minute, then stir in tomato paste for 2 minutes.
- Add crushed tomatoes, tomato sauce, sugar (if using), salt, pepper, red pepper flakes, bay leaf, basil, and oregano. Simmer gently.
- Add browned meatballs to the sauce. Cover and simmer on low for 25–30 minutes, stirring occasionally.
- Boil salted water. Cook spaghetti per package (9–11 minutes). Reserve ½ cup pasta water, then drain.
- Toss pasta with sauce and meatballs or plate separately. Garnish with herbs and Parmesan. Serve warm.