Spaghetti and meatballs is a beef-and-pork pasta bake that comes together in about 80 minutes with mostly pantry staples. The meatballs get pan-fried first, then finished in the oven, so you end up with a browned crust and a fully cooked center — no guesswork. It feeds six people without breaking the budget, and the sauce is built from a combination of fresh plum tomatoes, canned tomatoes, and passata, so you can lean harder on whichever you have more of.
The short version of why this works
Two things make this recipe reliable. First, the beef-and-pork split: lean ground beef alone tends to produce a firm, dry meatball, but the pork adds enough fat to keep things tender without making the mix greasy. If you only have beef, use 80/20 rather than extra-lean and the texture stays acceptable. Second, the two-stage cooking — pan-fry to brown, then oven at 180°C (350°F) for 20 minutes — solves the common problem of meatballs that are golden outside but raw in the middle. Ground beef and pork both need to hit 160°F (71°C) internally, and the oven stage gets you there evenly without burning the outside. The sauce simmers while the meatballs finish, so nothing is sitting around waiting.
Leftovers and meal prep
Store leftover meatballs and sauce together in an airtight container in the fridge for up to 3 days — keeping them combined stops the meatballs from drying out. For longer storage, freeze in portions for up to 3 months; the sauce actually improves after freezing because the tomatoes break down further. Reheat on the stovetop over medium-low heat, adding a splash of water if the sauce has thickened too much. Cook fresh spaghetti when you’re ready to serve rather than storing pasta mixed in — pasta soaks up the sauce and turns soft. If you want to get ahead, the meatball mixture can be shaped and refrigerated raw for up to 24 hours before frying.
If something goes sideways
- Meatballs falling apart in the pan: The mixture is too wet or the egg wasn’t fully incorporated. Press the mix together firmly before shaping and chill the formed meatballs for 15 minutes before frying. Don’t move them in the pan until a crust has formed — that crust is what holds them together.
- Sauce tastes flat or acidic: The small teaspoon of sugar in the recipe is there to balance canned tomatoes, but brands vary. Taste before serving and add another pinch of sugar or a small pinch of salt — one or the other usually fixes it without needing anything extra.
- Meatballs are cooked through but pale and steamed-looking: The pan wasn’t hot enough before they went in, or the pan was overcrowded. Fry in two batches with enough space between each meatball so steam can escape. A properly hot pan with a thin film of oil gives you the brown crust in 5–10 minutes.
- Sauce is too thin after simmering: Leave the lid off for the last 10 minutes of cooking. If it’s still loose, a gentle mash of the plum tomatoes with a potato masher — as the recipe suggests — thickens it faster than reducing alone. Skip the garnish of extra fresh basil on individual plates — not worth the extra dish when there’s already basil cooked into the sauce.
- No passata in the cupboard: Blend a second tin of chopped tomatoes until smooth and use that instead. The flavor is nearly identical and the texture difference disappears after simmering.

Spaghetti and Meatballs (Beef & Pork, Oven-Finished)
Equipment
Ingredients
1 pound ground beef - lean, 450g
½ pound ground pork - lean, 225g
½ cup Parmesan cheese - finely grated, 50g — or Grana Padano
2 slices bread - for breadcrumbs
1 tablespoon olive oil - for frying meatballs
1 tablespoon olive oil - for the sauce
1 medium onion - finely chopped
1 medium egg
3 cloves garlic - minced
1 tablespoon dried oregano
1 small handful basil - fresh ; chopped- 9 oz baby plum tomatoes - about 1 punnet, 250g
1 tin tomatoes - chopped ; 14oz / 400g
17 fl oz passata or crushed tomatoes (tomato puree with seeds removed) - 1 small carton, 500ml
1 teaspoon sugar (white sugar)
1 pinch salt - to taste
1 pinch ground black pepper - to taste
1 lb spaghetti - or linguine, 500g
Instructions
- Blitz the bread in a food processor to create fine breadcrumbs. Finely chop the onion. Mince all 3 cloves of garlic and set aside — 2 cloves go into the meatball mixture and 1 clove goes into the sauce.2 slices bread, 1 medium onion, 3 cloves garlic
- In a large bowl, mix the pork and beef mince (I mix with my hands).1 pound ground beef, 1/2 pound ground pork
- Add the Parmesan cheese, 2 of the minced garlic cloves, breadcrumbs, and half of the chopped onion.1/2 cup Parmesan cheese, 3 cloves garlic, 2 slices bread, 1 medium onion
- Add one egg to the bowl, season with salt and pepper and mix. You should feel it starting to come together now. This is when you can start creating the meatballs.1 medium egg, 1 pinch salt, 1 pinch ground black pepper
- Heat 1 tablespoon of olive oil in a frying pan. Fry the first batch of meatballs for 5-8 minutes total, turning every couple of minutes, until golden brown on all sides.1 tablespoon olive oil
- Grab a baking tray and carefully place the meatballs on to here and then fry the second batch.
- Preheat the oven to 180°C / 350°F (160°C fan-forced) while you fry the second batch of meatballs.
- Once all of the meatballs are on the baking tray, place them in the oven for approximately 20 minutes to cook through.
- While the meatballs are in the oven, heat 1 tablespoon of olive oil in a large saucepan over medium heat. Add the remaining chopped onion, the remaining garlic clove, baby plum tomatoes, and dried oregano. Cook for 5-10 minutes until the tomatoes soften, then gently crush them with a potato masher to break them down.1 tablespoon olive oil, 1 medium onion, 3 cloves garlic, 9 oz baby plum tomatoes, 1 tablespoon dried oregano
- Add the tin of chopped tomatoes, passata, and sugar. Stir well and cook for a further 5 minutes. Season with salt and pepper, then stir in the chopped fresh basil.1 tin tomatoes, 17 fl oz passata or crushed tomatoes (tomato puree with seeds removed), 1 teaspoon sugar (white sugar), 1 pinch salt, 1 pinch ground black pepper, 1 small handful basil
- Remove the meatballs from the oven and carefully add to the tomato sauce. Stir in the meatballs and leave on low heat.
- Bring a large pot of salted water to a rolling boil and cook the spaghetti according to the packet instructions (usually 9-11 minutes for al dente). Drain, reserving a small cup of pasta water, and serve topped with the meatballs and sauce. Add a splash of pasta water if the sauce needs loosening. Bon appétit!1 lb spaghetti
Notes
Nutrition
FAQ
Can I use all beef instead of the beef and pork mix?
Yes, but choose 80/20 ground beef rather than extra-lean. The higher fat content replaces what the pork would have contributed, keeping the meatballs moist rather than dense and dry.
Can I use dried breadcrumbs from a canister instead of blitzing fresh bread?
Yes — use about 4 tablespoons of dried breadcrumbs in place of the 2 slices of fresh bread. Dried breadcrumbs absorb more moisture, so if the mixture feels stiff, add a tablespoon of milk to loosen it slightly before shaping.
Do I need all three tomato products, or can I simplify?
You can get by with just two. The combination of fresh plum tomatoes, canned tomatoes, and passata builds layers of flavor and body, but if you’re short one, double up on either the canned tomatoes or the passata — both work. Skip the fresh plum tomatoes last if you have to; the sauce holds up fine without them.
What to cook next
- Beef Ricotta Lasagna Rolls
- Creamy Beef Spinach Pasta
- Olive Beef Polpette Perfection
- Savory Pork Noodle Stir-Fry










