Easy Beef Meatballs in Tomato Sauce

Kitchen-reviewed Updated Jul 2026 Written from established cooking principles and checked for sense and safety. Not independently lab-tested.
Beef meatballs in rich tomato sauce topped with fresh basil and grated Parmesan in a white bowl

Soft, well-seasoned beef meatballs browned on the hob then finished in a deeply savoury tomato sauce. It's a proper crowd-pleaser that comes together in one pan, and works just as well over pasta as it does with crusty bread to mop up.

Prep15 mins
Cook25 mins
Total40 mins
Serves4
Difficultyeasy
Jump to recipe

These beef meatballs are everything a midweek dinner should be: soft in the middle, packed with flavour and simmered in a glossy tomato sauce you’ll want to spoon over everything. The trick is a splash of milk in the mince to keep them tender, plus a gentle simmer so they cook through without toughening. One pan, minimal fuss.

Ingredients

Scale for 4 servings
  • 500 g beef mince — 12-15% fat for the best flavour
  • 50 g fresh breadcrumbs — about 1 slice of bread, blitzed
  • 3 tbsp whole milk
  • 1 medium egg — lightly beaten
  • 30 g Parmesan — finely grated, plus extra to serve
  • 3 garlic cloves — crushed
  • 1 tsp dried oregano
  • 2 tbsp olive oil
  • 1 onion — finely chopped
  • 2 x 400 g tins chopped tomatoes
  • 1 tbsp tomato purée
  • 1 tsp caster sugar
  • 1 small handful fresh basil — torn, to finish
  • to taste salt and black pepper

Method

  1. Put the breadcrumbs and milk in a large bowl and leave for a couple of minutes to soak. Add the beef mince, egg, Parmesan, 1 crushed garlic clove, the oregano, a good pinch of salt and plenty of black pepper. Mix with your hands until just combined, but don't overwork it.
  2. With damp hands, roll the mixture into 20 walnut-sized meatballs. Sit them on a plate and chill for a few minutes while you start the sauce if you have time.
  3. Heat the olive oil in a large deep frying pan or shallow casserole over a medium-high heat. Brown the meatballs in batches, turning, for 4-5 minutes until golden all over. Lift out onto a plate; they don't need to be cooked through yet.
  4. Lower the heat to medium and add the onion to the same pan. Cook for 5 minutes until softened, then stir in the remaining 2 crushed garlic cloves and the tomato purée and cook for 1 minute until fragrant.
  5. Tip in both tins of chopped tomatoes, the sugar and a splash of water. Season, bring to a gentle simmer and let it bubble for 5 minutes to thicken slightly.
  6. Return the meatballs and any resting juices to the pan, nestling them into the sauce. Simmer gently, partially covered, for 12-15 minutes, turning halfway, until the meatballs are cooked through with no pink remaining and piping hot throughout.
  7. Taste the sauce and adjust the seasoning. Scatter with torn basil and extra Parmesan, and serve hot.

Serve it with

  • Spaghetti or rigatoni
  • Buttery mashed potato
  • Crusty ciabatta to mop up the sauce
  • A crisp green salad
  • Garlic bread

Why this works

Soaking breadcrumbs in milk creates a panade that traps moisture, keeping the meatballs soft rather than dense. Browning first builds a savoury crust, while finishing them in the sauce lets those meaty juices enrich the tomato.

Common swaps

  • Use a mix of beef and pork mince for a richer, more traditional flavour.
  • Swap breadcrumbs for gluten-free breadcrumbs to make the dish gluten-free.
  • No fresh basil? Stir a teaspoon of dried oregano into the sauce instead.
  • Add a pinch of chilli flakes with the garlic for a gentle kick.
  • Replace Parmesan with a vegetarian hard cheese if preferred.

Common mistakes to avoid

  • Overworking the mince, which makes the meatballs tough and dense.
  • Skipping the milk-soaked breadcrumbs, so they end up dry.
  • Crowding the pan when browning, which steams rather than sears the meatballs.
  • Boiling the sauce hard, which can toughen the meatballs; keep it at a gentle simmer.

Storage, freezing & reheating

Storage: Cool leftovers quickly and keep in an airtight container in the fridge for up to 3 days.

Freezing: Freeze the cooked meatballs and sauce together in an airtight container for up to 3 months. Defrost fully in the fridge before reheating.

Reheating: Reheat gently in a pan over a low-medium heat, adding a splash of water, until piping hot throughout.

Allergen notes: contains Milk, Gluten, Egg. Always check individual product labels.

Estimated nutrition

Per serving, estimated from typical ingredient values — not a substitute for precise dietary calculation.

Calories480 kcal
Protein32 g
Carbohydrate20 g
Fat30 g