Quick Recipe Version (TL;DR)
Quick Ingredients
- 2 tbsp olive oil; 1 small onion (finely chopped); 6 garlic cloves (minced); 2 tbsp tomato paste; 2 cans (28 oz each) whole peeled tomatoes; 2 basil sprigs; 1 bay leaf; 1 tsp sugar; 1 tsp dried oregano; 1 tsp kosher salt + pepper; pinch red pepper flakes
- 1 lb ground beef (80/20); 1/2 lb ground pork; 3/4 cup panko; 1/4 cup whole milk; 2 eggs; 1/3 cup grated Parmesan; 1/4 cup grated onion; 2 garlic cloves (minced); 2 tbsp chopped parsley; 1 1/2 tsp kosher salt; 1 tsp black pepper; 1/2 tsp red pepper flakes
- 1 lb spaghetti; kosher salt for pasta water
- 1 baguette; 1/2 cup softened butter; 3 garlic cloves (grated); 2 tbsp chopped parsley; 2 tbsp grated Parmesan; pinch salt
- Fresh basil and extra Parmesan for serving
Do This
- 1. Start marinara: sauté onion in oil 5–6 min; add garlic 1 min, tomato paste 2 min. Crush in tomatoes, basil, bay, oregano, sugar, salt, pepper; simmer gently 60 min.
- 2. Mix meatballs: soak panko in milk, beat in eggs; add onion, garlic, Parmesan, parsley, salt, pepper, flakes; fold in beef and pork until just combined.
- 3. Shape 1 1/2-inch balls (about 24). Bake at 425°F on a rack-lined sheet 12–15 min until browned (155°F).
- 4. Add meatballs to sauce; simmer 25–30 min until tender and 165°F internal.
- 5. Boil spaghetti in salted water until al dente; reserve 1 cup pasta water; drain and toss with some sauce.
- 6. Garlic bread: mix butter, garlic, parsley, Parmesan, salt; spread on split baguette; bake at 425°F 8–10 min (broil 1 min to brown).
- 7. Plate pasta with meatballs and sauce; garnish with basil and Parmesan. Serve with hot garlic bread.
Why You’ll Love This Recipe
- Juicy, tender meatballs made with a beef–pork blend and a milk-soaked panade for incredible moisture.
- Slow-simmered marinara develops deep, rich tomato flavor with basil and a hint of heat.
- A full comfort-dinner experience: perfectly sauced spaghetti plus golden, buttery garlic bread.
- Make-ahead friendly: sauce and meatballs freeze beautifully for future dinners.
Grocery List
- Produce: 2 onions, 11 garlic cloves, fresh basil, fresh parsley
- Dairy: Eggs, whole milk, unsalted butter, Parmesan
- Pantry: Olive oil, panko breadcrumbs, tomato paste, 2 cans whole peeled tomatoes (28 oz each), dried oregano, crushed red pepper flakes, bay leaf, sugar, kosher salt, black pepper, spaghetti, baguette
Full Ingredients
Slow-Cooked Marinara
- 2 tbsp extra-virgin olive oil
- 1 small yellow onion, finely chopped (about 3/4 cup)
- 6 garlic cloves, minced
- 2 tbsp tomato paste
- 2 cans whole peeled tomatoes (28 oz/796 g each), crushed by hand
- 2 fresh basil sprigs, plus more for finishing
- 1 bay leaf
- 1 tsp dried oregano
- 1 tsp sugar (optional, to balance acidity)
- 1–1 1/4 tsp kosher salt, to taste
- 1/4 tsp freshly ground black pepper
- Pinch crushed red pepper flakes
Meatballs
- 3/4 cup (36 g) panko breadcrumbs
- 1/4 cup (60 ml) whole milk
- 2 large eggs
- 1/4 cup (30 g) finely grated yellow onion
- 2 garlic cloves, minced
- 1/3 cup (30 g) finely grated Parmesan cheese
- 2 tbsp finely chopped fresh parsley
- 1 tsp dried oregano
- 1/2 tsp crushed red pepper flakes
- 1 1/2 tsp kosher salt
- 1 tsp freshly ground black pepper
- 1 lb (450 g) ground beef, 80/20
- 1/2 lb (225 g) ground pork
Spaghetti
- 1 lb (454 g) dried spaghetti
- 2 1/2 tbsp kosher salt (for 4 qt/3.8 L pasta water)
- 1 cup reserved pasta cooking water
Garlic Bread
- 1 baguette or Italian loaf (12–14 oz/340–400 g), split lengthwise
- 1/2 cup (113 g) unsalted butter, softened
- 3 garlic cloves, finely grated or pressed
- 2 tbsp finely chopped fresh parsley
- 2 tbsp finely grated Parmesan cheese
- Pinch kosher salt and black pepper
To Finish
- Fresh basil leaves, thinly sliced
- Extra grated Parmesan
- Freshly ground black pepper

Step-by-Step Instructions
Step 1: Begin the slow-cooked marinara
In a large heavy pot or Dutch oven, heat the olive oil over medium heat. Add the chopped onion and cook, stirring, until soft and translucent, 5–6 minutes. Stir in the minced garlic and cook 1 minute until fragrant. Add the tomato paste and cook, stirring, for 2 minutes to caramelize it slightly.
Crush the whole tomatoes by hand directly into the pot (add all their juices). Add the basil sprigs, bay leaf, dried oregano, sugar, a pinch of red pepper flakes, 1 tsp kosher salt, and black pepper. Bring to a lively simmer, then reduce heat to low, partially cover, and simmer gently for 60 minutes, stirring every 10–15 minutes. If it gets too thick, splash in 1/4 cup water.
Step 2: Make the meatball panade and mix
In a large bowl, combine panko and milk and let it soak 5 minutes. Whisk in eggs, then add grated onion, garlic, Parmesan, parsley, dried oregano, red pepper flakes, kosher salt, and black pepper. Add the ground beef and pork. Using a fork or your fingertips, gently mix just until combined; do not overwork or the meatballs will be dense.
Step 3: Shape and pre-brown the meatballs
Preheat oven to 425°F (220°C). Line a rimmed baking sheet with foil and set a lightly oiled rack on top. With damp hands or a 2-tbsp scoop, form 1 1/2-inch meatballs (about 24 total) and arrange on the rack. Bake 12–15 minutes, until browned and about 155°F (68°C) in the center. They will finish cooking in the sauce.
Step 4: Deepen the sauce flavor
After the marinara has simmered 60 minutes, taste and adjust seasoning with additional salt if needed. Continue to simmer on low while the meatballs bake. This extra time builds body and sweetness in the sauce.
Step 5: Simmer meatballs in the marinara
Nestle the browned meatballs into the sauce, spooning a little sauce over each one. Simmer gently, uncovered, for 25–30 minutes, turning once, until the meatballs are very tender and reach 165°F (74°C) internal. Remove the bay leaf and spent basil sprigs.
Step 6: Cook the spaghetti and marry with sauce
Bring 4 quarts (3.8 L) of water to a boil. Add 2 1/2 tbsp kosher salt, then the spaghetti. Cook until al dente, 9–10 minutes (or per package). Reserve 1 cup pasta water, then drain. Return spaghetti to the pot and ladle in 2–3 cups marinara (without meatballs). Toss over low heat, loosening with splashes of pasta water until glossy and well coated.
Step 7: Bake the garlic bread
While the meatballs simmer, make the garlic butter by mixing softened butter, grated garlic, parsley, Parmesan, a pinch of salt, and pepper. Spread evenly over the split baguette, cut side up. Bake at 425°F (220°C) for 8–10 minutes until the edges are golden; broil 30–60 seconds if you like extra color. Slice into thick pieces.
Step 8: Plate and finish
Twirled nests of sauced spaghetti go onto warm plates. Top each portion with 3–4 meatballs and spoon extra marinara over the top. Shower with grated Parmesan, a few basil ribbons, and cracked black pepper. Serve immediately with hot garlic bread.
Pro Tips
- For ultra-tender meatballs, keep the mixture cold and handle it minimally—mix just until combined.
- Make a tiny test patty in a skillet to check seasoning before shaping all the meatballs.
- Keep the sauce at a gentle bubble; a hard boil can toughen meatballs and reduce sauce too quickly.
- Reserve that pasta water—its starch makes the sauce cling to spaghetti like a restaurant dish.
- Parmesan rind in the sauce adds savory depth; toss one in at the start if you have it.
Variations
- Spicy Arrabbiata: Double the red pepper flakes in both meatballs and sauce, and add a splash of Calabrian chili paste.
- Lighter Poultry: Use 1 lb ground turkey thigh + 1/2 lb chicken sausage, and add 1 tbsp olive oil to the meatball mix for moisture.
- Cheese-Stuffed: Press a 1/2-inch cube of low-moisture mozzarella into each meatball before baking for a melty center.
Storage & Make-Ahead
Marinara and meatballs keep 4 days refrigerated in an airtight container; reheat gently on the stovetop with a splash of water. Freeze sauce and meatballs together for up to 3 months; thaw overnight in the fridge before reheating. Cook spaghetti fresh for best texture, but leftover sauced pasta can be reheated with a little water in a skillet. Garlic bread is best day-of; to revive, wrap in foil and warm at 350°F (175°C) for 8–10 minutes.
Nutrition (per serving)
Approximate with garlic bread: 1100 calories; 45 g protein; 105 g carbohydrates; 54 g fat; 8 g fiber; 1650 mg sodium. Values will vary based on brands and exact portions.

