Quick Recipe Version (TL;DR)
Quick Ingredients
- 680 g (1 1/2 lb) firm white fish (cod loin, halibut, mahi-mahi, or monkfish), cut into 4 cm (1 1/2-inch) chunks
- 240 g (1 cup) plain full-fat yogurt
- 1 tbsp finely grated fresh ginger
- 3 garlic cloves, minced
- 2 tbsp lemon juice + 1 tsp finely grated lemon zest
- 2 tsp garam masala
- 1 1/2 tsp Kashmiri chili powder (or 1 tsp sweet paprika + 1/4 tsp cayenne)
- 1 tsp ground cumin
- 1 tsp ground coriander
- 1/2 tsp ground turmeric
- 2 tbsp neutral oil (canola, grapeseed, or avocado)
- 1 1/4 tsp kosher salt, divided
- Mint chutney (store-bought or quick homemade)
- Naan, lemon wedges, sliced red onion (to serve)
Do This
- 1. Soak wooden skewers in water for 30 minutes (or use metal skewers).
- 2. Mix yogurt, ginger, garlic, lemon, spices, oil, and 1 tsp salt.
- 3. Coat fish in marinade; cover and refrigerate 45 minutes (up to 2 hours).
- 4. Heat oven to 245°C (475°F). Line a tray with foil; set an oiled rack on top.
- 5. Thread fish onto skewers; let excess marinade drip off (don’t wipe it off).
- 6. Roast 6 minutes, flip, then roast 2–4 minutes more until lightly charred and fish hits 63°C (145°F).
- 7. Rest 2 minutes; serve with mint chutney, warm naan, lemon wedges, and onions.
Why You’ll Love This Recipe
- Big tandoori flavor, home-oven friendly: High heat + a quick broil gives you charred edges without a tandoor.
- Fast cook time: Fish tikka cooks in about 10–12 minutes once marinated.
- Tender, juicy results: Yogurt and lemon season the fish while helping it stay moist.
- Perfect for entertaining: Skewers look impressive, and mint chutney + naan make it a full spread.
Grocery List
- Produce: fresh ginger, garlic, lemon, fresh mint, fresh cilantro (optional but recommended for chutney), green chili (optional), red onion (optional), cucumber (optional)
- Dairy: plain full-fat yogurt
- Pantry: garam masala, Kashmiri chili powder (or paprika + cayenne), ground cumin, ground coriander, ground turmeric, kosher salt, neutral oil, sugar (optional, for chutney), naan (or ingredients to make/heat your own)
Full Ingredients
Fish
- 680 g (1 1/2 lb) firm white fish (cod loin, halibut, mahi-mahi, monkfish, or haddock loin), skinless, boneless, cut into 4 cm (1 1/2-inch) chunks
Tandoori-Style Yogurt Marinade
- 240 g (1 cup) plain full-fat yogurt
- 1 tbsp finely grated fresh ginger
- 3 garlic cloves, minced (about 1 tbsp)
- 2 tbsp fresh lemon juice
- 1 tsp finely grated lemon zest
- 2 tsp garam masala
- 1 1/2 tsp Kashmiri chili powder (or 1 tsp sweet paprika + 1/4 tsp cayenne)
- 1 tsp ground cumin
- 1 tsp ground coriander
- 1/2 tsp ground turmeric
- 2 tbsp neutral oil (canola, grapeseed, or avocado)
- 1 1/4 tsp kosher salt, divided (1 tsp in marinade + 1/4 tsp to taste at the end)
Quick Mint Chutney (Homemade Option)
- 30 g fresh mint leaves (about 2 packed cups)
- 15 g fresh cilantro leaves and tender stems (about 1 packed cup)
- 1 small green chili, chopped (optional, for heat)
- 1 tsp grated fresh ginger
- 1 small garlic clove
- 1 1/2 tbsp lemon or lime juice
- 2 tbsp plain yogurt (optional, for a creamy chutney)
- 1/2 tsp kosher salt
- 1/2 tsp sugar (optional, balances heat and bitterness)
- 2–4 tbsp cold water, as needed for blending
To Serve
- 4 naan, warmed (about 120–160 g total, depending on brand)
- Lemon wedges
- Sliced red onion (optional)
- Sliced cucumber (optional)
- Extra mint leaves (optional)

Step-by-Step Instructions
Step 1: Prep your skewers and pan
If you’re using wooden skewers, soak them fully submerged in water for 30 minutes to reduce burning. Metal skewers can be used straight away.
Set your oven rack in the upper third of the oven. Line a rimmed baking sheet with foil (easy cleanup), then place a wire rack on top. Lightly oil the rack with about 1 tsp neutral oil or a quick spritz of cooking spray so the fish releases easily.
Step 2: Make the spiced yogurt marinade
In a medium bowl, whisk together:
240 g (1 cup) yogurt, 1 tbsp ginger, 3 minced garlic cloves, 2 tbsp lemon juice, 1 tsp lemon zest, 2 tsp garam masala, 1 1/2 tsp Kashmiri chili powder, 1 tsp cumin, 1 tsp coriander, 1/2 tsp turmeric, 2 tbsp oil, and 1 tsp kosher salt.
The marinade should look thick and speckled with spices. If it seems extremely thick (some yogurts are), add 1 tbsp water to loosen it slightly so it coats the fish evenly.
Step 3: Marinate the fish (don’t overdo it)
Add the fish chunks to the bowl and gently toss until every piece is well coated. Use a rubber spatula and a light hand so you don’t break the fish.
Cover and refrigerate for 45 minutes. You can marinate up to 2 hours, but avoid going longer because the lemon + yogurt can start to “cook” the fish and make the texture less juicy.
Step 4: Preheat the oven hot
About 15 minutes before cooking, preheat the oven to 245°C (475°F). High heat is key for a tandoori-style finish: you want the outside to pick up color quickly before the fish dries out.
Step 5: Thread the fish onto skewers
Thread the marinated fish onto skewers, leaving a little space between pieces so hot air can circulate. Aim for 4–5 chunks per skewer depending on size.
Let excess marinade drip back into the bowl (you want a coating, not big globs). Discard leftover marinade that has touched raw fish.
Step 6: Roast until charred at the edges and just cooked through
Place skewers on the prepared rack. Roast at 245°C (475°F) for 6 minutes.
Carefully flip the skewers and roast another 2–4 minutes, until the edges are lightly charred and the thickest piece reaches an internal temperature of 63°C (145°F).
If you want more char, switch to the broiler for the last 1–2 minutes, watching closely so the yogurt coating doesn’t burn.
Step 7: Make (or warm) mint chutney and serve
If making the quick mint chutney: Add mint, cilantro, green chili (if using), ginger, garlic, lemon/lime juice, yogurt (if using), salt, sugar (if using), and 2 tbsp water to a blender. Blend until smooth, adding up to 2 more tbsp water as needed to reach a spoonable consistency. Taste and adjust salt and acidity.
Rest the fish skewers for 2 minutes, then serve hot with mint chutney, warm naan, lemon wedges, and (optional) sliced red onion and cucumber. Finish with a pinch of the remaining 1/4 tsp kosher salt if needed.
Pro Tips
- Choose the right fish: Firm, thick-cut fish (like cod loin, halibut, monkfish, mahi-mahi) holds together on skewers and won’t fall apart when flipped.
- Don’t marinate overnight: For fish, 45 minutes to 2 hours is the sweet spot. Longer can turn the surface mealy.
- Use a rack: Elevating the skewers helps heat circulate and encourages browning rather than steaming in yogurt.
- Go by temperature, not guesswork: Pull at 63°C (145°F). Fish can go from perfect to dry quickly.
- Want deeper color without extra heat? Use Kashmiri chili powder (mild, vibrant) instead of cayenne-heavy chili powders.
Variations
- Tandoori salmon skewers: Swap in 680 g (1 1/2 lb) salmon cut into 4 cm cubes. Roast for 7 minutes, flip, then 2–3 minutes more (target 52–57°C / 125–135°F depending on your preference).
- Grill method: Preheat grill to high (about 260°C / 500°F). Oil grates well. Grill skewers for 2–3 minutes per side (total 8–10 minutes) until lightly charred and cooked through.
- Dairy-free marinade: Use 240 g (1 cup) unsweetened coconut yogurt and add 1 extra tbsp lemon juice plus 1 tbsp oil for richness.
Storage & Make-Ahead
Refrigerate: Store cooked fish tikka in an airtight container for up to 3 days. Reheat gently on a sheet pan at 175°C (350°F) for 6–8 minutes until warmed through (avoid microwaving too long, which can toughen fish).
Make-ahead: You can blend the mint chutney up to 2 days ahead (store airtight; the color may darken slightly). You can also mix the marinade (without fish) up to 24 hours ahead. Marinate the fish for 45 minutes right before cooking for best texture.
Freezing: Not ideal once marinated in yogurt (texture changes). If you want to freeze, freeze the fish plain, then thaw and marinate fresh.
Nutrition (per serving)
Approximate, for 1/4 of the fish + marinade + about 2 tbsp mint chutney (not including naan): 260 calories, 33 g protein, 10 g fat, 9 g carbohydrates, 2 g fiber, 620 mg sodium.
