Spaghetti and meatballs is the dinner that makes a house feel looked after. The meatballs here are tender rather than dense — fresh breadcrumbs soaked in milk, a beaten egg, Parmesan and a light hand when mixing — and they finish cooking in the sauce, so they stay juicy and the sauce picks up everything they give off. It tastes like a Sunday project and lands on the table in about 50 minutes.
It belongs in our Easy Dinners rotation next to our Baked Ziti, and it follows the same weeknight rules: supermarket ingredients, one sauce pot, and leftovers that reheat like a gift. Browning the meatballs first is worth the extra pan — those browned edges are where most of the flavour in the finished dish comes from.
A short ingredient list carries this recipe, so each one matters. Use crushed tomatoes you like the taste of straight from the tin, real Parmesan rather than the shelf-stable shaker kind, and ground beef with some fat in it — 80/20 makes noticeably juicier meatballs than lean mince, which can cook up tight and dry.
Tender meatballs are mixed, not worked
The difference between a tender meatball and a bouncy one is how much you handle the mixture. Combine the soaked breadcrumbs, egg, cheese and seasonings first, then fold in the meat with your hands or a fork just until everything is evenly distributed — no squeezing, no kneading. Wet hands make rolling easier and stop the mixture sticking. Size matters too: golf-ball meatballs of about 1 1/2 inches (4 cm) brown well outside and stay pink-free inside without drying, and even sizes mean even cooking. If your mixture feels very soft, 15 minutes in the fridge firms it up for cleaner rolling.
Let the sauce and meatballs finish together
Browning gives the meatballs their crust, but the sauce is where they finish. Simmering them gently in the tomato sauce for the last 15 minutes cooks them through, keeps them moist, and lets fat and juices mingle into the sauce so the whole pot tastes unified rather than assembled. Keep the simmer gentle — a hard boil toughens the meat. A pinch of sugar only belongs here if your tomatoes are sharply acidic; taste first, because good crushed tomatoes with a long-enough simmer usually balance themselves.
Ingredients
- 1 lb ground beef (450 g), 80/20
- 8 oz ground pork (225 g), or more beef
- 1/2 cup fresh breadcrumbs (30 g)
- 1/4 cup milk (60 ml)
- 1 large egg, beaten
- 1/2 cup finely grated Parmesan (45 g), plus more to serve
- 3 garlic cloves, finely minced (about 9 g), divided
- 1 teaspoon kosher salt (6 g)
- 1/2 teaspoon black pepper (1.5 g)
- 2 tablespoons olive oil (30 ml)
- 1 (28 oz) can crushed tomatoes (794 g)
- 1 teaspoon dried oregano (1 g)
- 1/2 teaspoon red pepper flakes (1 g), optional
- 12 oz spaghetti (340 g)
- Fresh basil or parsley, to serve
Amounts are for the yield below. US customary measures first, grams in brackets for scale users.
Step-by-step instructions
- Soak the breadcrumbs and mix. Stir the breadcrumbs and milk together in a large bowl and leave for 5 minutes until the crumbs have absorbed the milk into a soft paste. Add the beaten egg, Parmesan, half the garlic, salt and pepper and mix well, then fold in the beef and pork with a light hand until just combined.
- Roll the meatballs. With damp hands, roll the mixture into balls of about 1 1/2 inches (4 cm) — you should get roughly 18. Set them on a plate in a single layer. If the mixture is very soft, chill the rolled meatballs for 15 minutes so they hold their shape in the pan.
- Brown the meatballs. Heat the olive oil in a large, deep pan or Dutch oven over medium-high heat. Brown the meatballs in two batches for 5 to 6 minutes, turning until well coloured on most sides — they will finish cooking in the sauce, so the middle can still be pink. Lift them out onto a plate.
- Build the sauce. Turn the heat down to medium. Add the remaining garlic to the pan drippings and stir for 30 seconds, then pour in the crushed tomatoes, oregano and pepper flakes if using. Stir, scraping up the browned bits from the bottom, and bring to a gentle simmer.
- Simmer meatballs in the sauce. Return the meatballs and any juices to the sauce, cover partially, and simmer gently for 15 minutes, turning them once, until cooked through to 165°F (74°C) in the centre. Meanwhile, cook the spaghetti in well-salted boiling water until just shy of tender, and reserve 1 cup (240 ml) of the pasta water before draining.
- Bring it together and serve. Toss the drained spaghetti through the sauce with a splash of pasta water until glossy, or plate the pasta and spoon sauce and meatballs over the top, family style. Serve with extra Parmesan and torn basil or parsley, and pass the pepper flakes at the table.
Nutrition estimate
| Nutrient | Per serving |
|---|---|
| Calories | 618 kcal |
| Protein | 33 g |
| Carbohydrates | 62 g |
| Fat | 26 g |
| Saturated fat | 9 g |
| Sodium | 780 mg |
| Fiber | 5 g |
| Sugar | 9 g |
Nutrition figures are estimates calculated from standard ingredient data for the yield stated. Your actual values will vary with brands, substitutions and portion sizes — treat them as a guide, not a guarantee.
Storage & reheating
Leftovers keep for up to 4 days in an airtight container in the refrigerator — the flavour deepens overnight. Reheat gently in a covered pan over low heat with a splash of water, or in the microwave at reduced power, until steaming. Cooked meatballs in sauce freeze well for up to 3 months; thaw overnight in the fridge and reheat the same way. If you plan to freeze, undercook the pasta slightly or freeze the meatballs and sauce on their own and cook fresh spaghetti on the day.
Easy Spaghetti and Meatballs
Tender meatballs, honest tomato sauce, a pot of spaghetti — Sunday flavour, Tuesday effort.
Ingredients
Tick ingredients off as you prep, and tap a step below to mark it done as you cook. Scaling adjusts the listed amounts - seasoning to taste stays your call.
Instructions
- Soak the breadcrumbs and mix. Stir the breadcrumbs and milk together in a large bowl and leave for 5 minutes until the crumbs have absorbed the milk into a soft paste. Add the beaten egg, Parmesan, half the garlic, salt and pepper and mix well, then fold in the beef and pork with a light hand until just combined.
- Roll the meatballs. With damp hands, roll the mixture into balls of about 1 1/2 inches (4 cm) — you should get roughly 18. Set them on a plate in a single layer. If the mixture is very soft, chill the rolled meatballs for 15 minutes so they hold their shape in the pan.
- Brown the meatballs. Heat the olive oil in a large, deep pan or Dutch oven over medium-high heat. Brown the meatballs in two batches for 5 to 6 minutes, turning until well coloured on most sides — they will finish cooking in the sauce, so the middle can still be pink. Lift them out onto a plate.
- Build the sauce. Turn the heat down to medium. Add the remaining garlic to the pan drippings and stir for 30 seconds, then pour in the crushed tomatoes, oregano and pepper flakes if using. Stir, scraping up the browned bits from the bottom, and bring to a gentle simmer.
- Simmer meatballs in the sauce. Return the meatballs and any juices to the sauce, cover partially, and simmer gently for 15 minutes, turning them once, until cooked through to 165°F (74°C) in the centre. Meanwhile, cook the spaghetti in well-salted boiling water until just shy of tender, and reserve 1 cup (240 ml) of the pasta water before draining.
- Bring it together and serve. Toss the drained spaghetti through the sauce with a splash of pasta water until glossy, or plate the pasta and spoon sauce and meatballs over the top, family style. Serve with extra Parmesan and torn basil or parsley, and pass the pepper flakes at the table.
Recipe by Ahsan ul Haq · FryDaily. Printing? This card is designed to print cleanly on its own.




