Worked out from this recipe's ingredients. If you're cooking for an allergy, always read the full ingredient list.
Tender beef-and-pork meatballs held together by a milk-soaked bread panade, roasted at high heat for color and then finished in a simple basil marinara so they drink up the sauce. Everything about them is built for a weeknight: they bake on one sheet pan, they freeze beautifully, and the sauce comes together in the time the oven takes to preheat. Served the American-Italian way — a tangle of spaghetti, a ladle of sauce, torn basil, and a snowdrift of Parmesan.
Ingredients
Meatballs
3 slice white sandwich bread, crusts removed, torn into small pieces
2/3 cup whole milk
1 lb ground beef, 80/20
1/2 lb ground pork
2 large eggs, lightly beaten
3/4 cup finely grated Parmesan
3 clove garlic, grated or minced
1/3 cup flat-leaf parsley, finely chopped
2 tsp kosher salt
1/2 tsp freshly ground black pepper
1/2 tsp dried oregano
1/4 tsp crushed red pepper flakes (optional)
1 tbsp olive oil, for the pan
Basil Marinara
3 tbsp extra-virgin olive oil
1 small yellow onion, finely diced
5 clove garlic, thinly sliced
2 tbsp tomato paste
2 28-oz can whole peeled tomatoes, preferably San Marzano
1 tsp kosher salt, plus more to taste
1/2 tsp sugar, if needed
1 large sprig fresh basil, plus 1/4 cup torn leaves for serving
1 piece Parmesan rind (optional)
To Serve
1 lb spaghetti
Kosher salt, for the pasta water
1 cup finely grated Parmesan
Extra-virgin olive oil, for drizzling
Instructions
Start the sauce first so it can simmer while you shape the meatballs. Heat 3 tablespoons olive oil in a wide 6- to 8-quart Dutch oven over medium heat. Add the diced onion and a pinch of salt and cook, stirring often, until soft and translucent but not browned, 7 to 8 minutes. Add the sliced garlic and cook 1 minute more, until fragrant.
Stir in the tomato paste and cook, stirring constantly, until it darkens to a brick red and coats the bottom of the pot, about 2 minutes. Crush the whole tomatoes with your hands directly into the pot (or pulse briefly in a food processor), then add all their juice, 1 teaspoon salt, the basil sprig, and the Parmesan rind if using. Bring to a simmer, then reduce heat to low and cook uncovered, stirring every 10 minutes, for 30 minutes.
Meanwhile, heat the oven to 425°F and line a rimmed baking sheet with foil. Brush the foil with 1 tablespoon olive oil.
Make the panade: in a large bowl, combine the torn bread and the milk. Mash with a fork and let sit 5 minutes, until the bread breaks down into a wet paste with no dry pockets remaining.
Add the beef, pork, eggs, 3/4 cup Parmesan, grated garlic, parsley, 2 teaspoons salt, black pepper, oregano, and red pepper flakes to the panade. Mix with your hands just until evenly combined, 30 to 45 seconds — stop as soon as you no longer see streaks of plain meat. Overworking makes the meatballs springy and dense.
Roll into 18 to 20 meatballs, about 1 3/4 inches across (a scant 1/4 cup each), wetting your hands with cold water as you go. Space them evenly on the oiled sheet pan.
Bake for 15 to 17 minutes, until well browned on top and just firm; an instant-read thermometer should read about 155°F. They will finish cooking in the sauce.
Taste the sauce and season with more salt; if it tastes sharp, stir in the sugar. Fish out the basil sprig and Parmesan rind. Gently lower the baked meatballs into the sauce along with any rendered juices from the pan, cover partially, and simmer over low heat for 20 to 25 minutes, turning them once halfway through. The sauce should barely bubble.
While the meatballs simmer, bring a large pot of water to a boil and salt it generously (about 2 tablespoons kosher salt per 4 quarts). Cook the spaghetti until just shy of al dente, 1 minute less than the package time. Reserve 1 1/2 cups pasta water, then drain.
Ladle about 1 1/2 cups of the sauce (meatballs left behind) into a large skillet or back into the empty pasta pot. Add the drained spaghetti and a splash of pasta water and toss over medium heat for 1 minute, until every strand is coated and glossy; add more pasta water a tablespoon at a time if it looks tight.
Divide the spaghetti among six warm bowls. Top each with 3 meatballs and a generous spoonful of sauce, then finish with torn basil, a heavy shower of Parmesan, and a drizzle of olive oil. Serve immediately.
Chef's tips
Freezer plan: after baking, cool the meatballs completely and freeze them in a single layer on the sheet pan, then bag them. Drop frozen meatballs straight into simmering sauce and cook 35 to 40 minutes.
The panade is not optional — the milk-soaked bread traps moisture and keeps the meatballs tender even after a long simmer in sauce. Fresh sandwich bread works far better than dry breadcrumbs here.
Cook one small test meatball in a skillet before rolling the rest so you can adjust salt to your taste; the mixture is too salty to taste raw.
All beef works if that's what you have, but the ground pork adds fat and a subtle sweetness that makes them taste like a restaurant meatball. Ground veal in place of the pork is the classic third option.
Make the sauce and meatballs up to 3 days ahead and refrigerate them together — the flavor improves. Reheat gently over low heat while the pasta boils.
Nutrition (per serving, estimated)
1021calories
57gprotein
98gcarbs
43gfat
Estimates only — values vary with brands and portions.
Made with Sprig
Baked-Then-Simmered Spaghetti and Meatballs was created in Sprig — the AI chef that turns any craving into a complete recipe, plans your week, and shops with one smart list.