
Bold, spiced beef and pork meatballs simmered in a deep, smoky chipotle and habanero tomato sauce, served alongside arroz blanco – a traditional Mexican white rice that’s lightly fried first for nutty flavour and separate fluffy grains.
Original recipe by Tom Parker Bowles
From Saturday Kitchen 07 Nov 2026
Optimised by our culinary team – 6 possible customisations, a 4-stage timed method, and 3 curated wine pairings.
Lean beef and pork provide excellent protein and iron; tomatoes add vitamin C and lycopene. Moderate refined carbohydrate and cooking oil keep this from an A rating. Enjoy as a balanced main meal with plenty of rice and sauce.
Shop the Recipe
The kit that makes this recipe easy:
- Deep frying pan with lid – a must for perfectly fluffy arroz blanco that steams evenly without sticking
- Heavy-based saucepan – ideal for slow-simmering sauce that thickens and deepens without burning
- Food blender – great for blitzing sauce to a luxuriously smooth, velvety consistency
- Fine-mesh sieve – perfect for draining rice until water runs clear for separate grains
Ingredients
For the arroz blanco
- 300g/10½oz long-grain white rice
- 80ml/2½fl oz peanut or safflower oil
- ½ medium onion, sliced
- 1 garlic clove, finely chopped
- 830ml/1½ pint chicken stock
- warm water, for soaking rice
For the meatballs
- 250g/9oz beef mince
- 250g/9oz pork mince
- 2 free-range eggs
- 1 tbsp onion powder
- 1 tbsp garlic powder
- 2 tbsp olive oil, for frying
- salt, to taste
For the sauce
- 2 tbsp olive oil, for frying
- 1 red onion, chopped
- 1 habanero chilli, chopped – deseed for less heat
- ½ tsp cumin seeds, dry-fried and ground
- 6 chipotle chillies in adobo sauce, chopped
- 2 x 400g/14oz tins tomatoes or 6 fresh tomatoes, skinned and chopped
- splash red wine vinegar
- 200ml/7fl oz chicken stock
- salt, to taste
Customise
- Meat mix – use all beef or all pork if preferred; 50/50 gives best balance of flavour and tenderness
- Heat level – habanero is fiery; deseed it or replace with 1–2 jalapeños for milder taste; add extra chipotle for deeper smokiness
- Rice swap – basmati works well; rinse thoroughly to remove starch for fluffy grains
- Vegetarian – swap mince for 400g mixed beans and lentils; use vegetable stock throughout
- Gluten-free – naturally gluten-free; check stock cubes are certified GF
- Chipotle shortcut – use 1 tbsp good-quality chipotle paste if chillies in adobo are hard to find
How the timings work
- Soak and rinse rice first – it needs 15 minutes soaking; use this time to mix and roll meatballs
- Fry rice and aromatics while sauce simmers – both cook in parallel for about 10 minutes
- Simmer sauce then blend – it thickens in 20 minutes; blend while rice rests covered
- Brown meatballs and finish in sauce – just 8–10 minutes; do this while rice steams undisturbed
- Rest rice off heat – don’t skip the 30 minute covered rest; it finishes cooking perfectly without drying out
Method
Make the arroz blanco (15 mins + 35 mins resting)
- Soak and rinse – pour warm water over 300g rice and leave 15 minutes. Drain, then rinse under cold running water until water runs clear. Shake well in a sieve and leave to drain.
- Fry the grains – heat 80ml oil in a deep frying pan over high heat. Add rice and stir to coat in oil. Fry, stirring occasionally, until pale golden – about 10 minutes.
- Add aromatics – tip in ½ sliced onion and 1 garlic clove. Fry a few minutes more until onion softens slightly. Spoon off excess oil.
- Simmer and steam – pour in 830ml chicken stock and stir once. Cook over medium heat 10 minutes until nearly all liquid absorbs. Cover tightly with foil, reduce heat to low and cook 5 minutes more. Remove from heat and leave covered for at least 30 minutes to finish steaming.
Make the meatballs (10 mins)
- Mix the base – combine 250g beef mince, 250g pork mince, 2 eggs, 1 tbsp onion powder, 1 tbsp garlic powder and salt in a large bowl. Mix thoroughly until evenly combined.
- Shape – divide into 12 equal portions. Roll each into a smooth meatball between damp hands. Set aside on a plate.
Make the sauce (30 mins)
- Soften onion – heat 2 tbsp oil in a saucepan over medium heat. Add 1 chopped red onion and fry 10 minutes until soft and translucent.
- Build flavour – stir in 1 habanero chilli, ground cumin and 6 chopped chipotle chillies. Cook 5 minutes more, stirring occasionally.
- Simmer – add tomatoes and a splash of red wine vinegar. Season with salt. Gently simmer 20 minutes until tomatoes break down and sauce thickens.
- Blend smooth – transfer sauce to a blender. Blitz until perfectly smooth. Return to the clean pan.
Cook meatballs and serve (15 mins)
- Brown in batches – heat 2 tbsp oil in a frying pan over medium-high heat. Add meatballs in batches and fry until golden brown all over. Return all meatballs to the pan.
- Finish in sauce – pour in the blended tomato sauce and 200ml chicken stock. Bring to a gentle simmer. Cook 8–10 minutes until meatballs are cooked through with no pink remaining and sauce is piping hot.
- Fluff and plate – remove lid from rice. Fluff grains gently with a fork. Spoon arroz blanco onto plates, top with meatballs and ladle over plenty of rich red sauce. Serve immediately.
Techniques for Success
- Rinse rice until water runs clear – surface starch makes grains stick together. Clear water means fluffy separate rice. Success: individual golden grains that stay distinct. Failure: sticky, clumpy, mushy rice that lacks texture.
- Fry rice before simmering – this step creates nutty flavour and seals grains so they hold their shape. Don’t rush it. Success: pale golden colour, fragrant nutty aroma. Failure: bland, pale, soft rice with no depth.
- Don’t stir rice while cooking – stirring releases starch and causes sticking. One gentle stir at the start is all you need. Success: even cooking, fluffy grains. Failure: gummy, uneven, stuck-to-the-bottom rice.
| Technique | Failure if done wrong | Success looks like |
|---|---|---|
| Rinsing rice | Sticky clumpy grains, heavy texture | Clear rinse water, grains stay separate and fluffy |
| Frying rice first | Bland, pale, soft with no depth | Pale golden hue, nutty aroma, grains hold shape |
| Resting covered | Unevenly cooked, dry or underdone | Perfectly tender, fluffy, evenly cooked through |
Tips & Swaps
- Get ahead: Make sauce up to 3 days in advance – store covered in fridge. Reheat gently before adding meatballs. Mix meatball mixture and chill for up to 24 hours before cooking.
- Shortcuts: Use good-quality passata instead of chopping tomatoes to save 5 minutes. Ready-made chipotle paste works well – use 1 tbsp and adjust to taste.
- Dietary notes: Naturally pregnancy-friendly – all ingredients fully cooked. Freeze mince mixture safely if making ahead. Gluten-free with GF stock; nut-free as written.
- Leftovers: Keep for up to 3 days covered in fridge. Reheat gently on hob until piping hot throughout. Rice is best eaten within 24 hours; cool quickly and store in fridge.
- Serving ideas: Add warm tortillas, sour cream, lime wedges and fresh coriander for a full Mexican feast. Serve with black beans or a crisp green salad to cut through richness.
- Flavour boost: Toast cumin seeds in a dry pan before grinding – aroma releases fully and tastes brighter. Taste sauce before serving; balance heat with a pinch of sugar or extra vinegar if needed.
Wine Pairing
Recommended by Helen McGinn:
Taste The Difference Vino Nobile di Montepulciano Toscana, Italy – Sainsbury’s, £13
This elegant Sangiovese-based red from Tuscany offers bright sour cherry and dried herb notes with subtle spice and fine tannins. Vibrant acidity cuts through rich tomato sauce while savoury depth complements smoky chipotle and the beef-pork meatballs – a beautifully balanced match.
Equally good alternatives that pair beautifully with this dish:
Rioja Crianza, Spain – Aldi / Lidl, £6.99
Juicy red berry and vanilla notes with soft, approachable tannins – gentle oak smooths the heat while bright fruit balances tomato tang and chipotle smoke.
Chianti Classico, Italy – Tesco / Sainsbury’s, £9.99
Classic Sangiovese with vibrant cherry, leather and dried herb character – zesty acidity lifts every layer; the perfect traditional partner for rich tomato-based dishes.
Valpolicella Classico Superiore, Italy – Waitrose, £12.99
Rich, concentrated red with ripe dark cherry, spice and a touch of sweetness – stands up boldly to smoky chipotle and habanero heat while keeping the palate refreshed.
* Prices checked November 2026 and may vary. The alternatives are our suggestions, not necessarily wines recommended by Helen McGinn.
Recipes from this episode


