Quick Recipe Version (TL;DR)
Quick Ingredients
- 4 barramundi fillets, skin-on (about 170 g each; total about 680 g)
- 1 1/2 tsp kosher salt, divided
- 1/2 tsp freshly ground black pepper
- 2 tbsp olive oil (for searing)
- 1 small garlic clove, finely grated (or 1/2 tsp garlic paste)
- 1 packed cup fresh basil leaves (about 25 g)
- 1 packed cup fresh flat-leaf parsley leaves (about 25 g)
- 1/2 cup extra-virgin olive oil (120 ml; for herb oil)
- 1 tbsp fresh lemon juice (15 ml)
- 1 lemon, zested (about 2 tsp zest), plus extra wedges for serving
- 500 g cauliflower florets
- 300 g Yukon Gold potatoes (about 2 small), peeled and cut into 2 cm pieces
- 2 tbsp unsalted butter (28 g)
- 1/4 cup whole milk (60 ml), warmed
Do This
- 1. Make herb oil: blend basil, parsley, 1/2 cup extra-virgin olive oil, lemon juice, garlic, and 1/4 tsp salt until bright green; set aside.
- 2. Cook mash: boil potatoes 12–14 min until tender; steam cauliflower 8–10 min until very soft.
- 3. Mash: drain well, then mash with butter, warm milk, 3/4 tsp salt, and pepper; cover to keep warm.
- 4. Prep fish: pat barramundi very dry; lightly score skin; season with 1/2 tsp salt and pepper.
- 5. Sear skin-side down in a hot skillet with 2 tbsp olive oil, pressing for the first 30 seconds; cook 6–8 min until skin crackles.
- 6. Flip and cook 60–90 seconds more, until 55°C/131°F in the thickest part; rest 2 minutes.
- 7. Serve over mash, drizzle herb oil, finish with lemon zest and a squeeze of lemon.
Why You’ll Love This Recipe
- That crackly skin: Simple stovetop technique delivers restaurant-style crispness.
- Fresh, bright flavor: Basil-parsley oil and lemon zest wake up the whole plate.
- Weeknight-friendly: Everything comes together in about 35 minutes.
- Flexible base: Serve over a light mash (included) or swap in quick greens.
Grocery List
- Produce: fresh basil, flat-leaf parsley, garlic, cauliflower, Yukon Gold potatoes, lemon
- Dairy: unsalted butter, whole milk
- Pantry: extra-virgin olive oil, olive oil, kosher salt, black pepper
Full Ingredients
For the basil-parsley herb oil
- 1 packed cup fresh basil leaves (about 25 g)
- 1 packed cup fresh flat-leaf parsley leaves (about 25 g)
- 1/2 cup extra-virgin olive oil (120 ml)
- 1 tbsp fresh lemon juice (15 ml)
- 1 small garlic clove, finely grated (or 1/2 tsp garlic paste)
- 1/4 tsp kosher salt
- 1 tbsp cold water (15 ml), optional (helps it blend smoothly)
For the light cauliflower-potato mash
- 300 g Yukon Gold potatoes, peeled and cut into 2 cm pieces
- 500 g cauliflower florets
- 2 tbsp unsalted butter (28 g)
- 1/4 cup whole milk (60 ml), warmed
- 3/4 tsp kosher salt
- 1/4 tsp freshly ground black pepper
For the crispy skin-on barramundi
- 4 barramundi fillets, skin-on (about 170 g each; total about 680 g)
- 1/2 tsp kosher salt
- 1/2 tsp freshly ground black pepper
- 2 tbsp olive oil (30 ml), for searing
To finish and serve
- Zest of 1 lemon (about 2 tsp), plus extra lemon wedges
- Flaky salt, optional
- Extra herb leaves, optional (small basil or parsley leaves)

Step-by-Step Instructions
Step 1: Make the herb oil
Add the basil, parsley, extra-virgin olive oil, lemon juice, garlic, and 1/4 tsp kosher salt to a blender or a tall cup for an immersion blender. Blend for 20–30 seconds, scraping once, until the oil turns a vibrant green and the herbs are finely broken down. If needed, add 1 tbsp cold water to help it loosen and blend smoothly.
Taste and adjust with a tiny pinch more salt if you like. Set aside at room temperature (or refrigerate if making ahead).
Step 2: Cook the potatoes for the mash
Bring a medium pot of water to a boil. Add the potatoes and boil at a steady simmer for 12–14 minutes, or until a knife slides in easily with no resistance.
Drain well and return the potatoes to the warm pot for 1 minute to steam off excess moisture.
Step 3: Steam the cauliflower until very soft
While the potatoes cook, steam the cauliflower florets in a steamer basket over simmering water for 8–10 minutes, until very tender (you want it soft enough to mash smoothly).
Tip: If you don’t have a steamer basket, simmer the cauliflower in a small amount of water, covered, for the same time; then drain very well.
Step 4: Mash until light and creamy
Add the steamed cauliflower to the pot with the drained potatoes. Add the butter, warm milk, 3/4 tsp kosher salt, and 1/4 tsp black pepper.
Mash until smooth (a potato masher works well). For an extra-silky mash, use a handheld mixer on low for 20–30 seconds (avoid overmixing). Cover and keep warm on the lowest heat while you cook the fish.
Step 5: Prep the barramundi for maximum crisp
Pat the fillets very dry with paper towels, especially the skin. Moisture is the enemy of crispness.
If the skin looks thick, lightly score it with 3–4 shallow cuts (do not cut into the flesh). Season the skin side and flesh side with 1/2 tsp kosher salt total and 1/2 tsp black pepper.
Step 6: Sear skin-side down until it crackles
Heat a large heavy skillet (cast iron or stainless steel) over medium-high heat for 2 minutes. Add 2 tbsp olive oil and heat until the oil shimmers (about 30 seconds).
Carefully place the barramundi in the pan skin-side down. Immediately press each fillet gently with a fish spatula for the first 30 seconds so the skin stays flat and makes full contact with the pan.
Continue cooking skin-side down for 6–8 minutes, without moving the fish, until the skin is deeply golden and audibly crisp. You’ll see the flesh turn opaque about three-quarters of the way up the sides.
Step 7: Flip briefly, rest, then plate with herb oil and lemon zest
Flip the fillets and cook for 60–90 seconds on the flesh side, just to finish. For best texture, aim for an internal temperature of 55°C/131°F in the thickest part. (If you prefer well-done fish, cook to 63°C/145°F.)
Transfer to a plate and rest for 2 minutes. Spoon mash onto plates, set the barramundi on top (skin side up), drizzle 1–2 tbsp herb oil over each serving, and finish with lemon zest and a squeeze of lemon. Add a pinch of flaky salt if desired.
Pro Tips
- Dry skin = crispy skin: Pat the fish dry thoroughly, and let it sit uncovered in the fridge for 15 minutes if you have time for even better crisping.
- Don’t rush the sear: Keep the fish skin-side down for the full 6–8 minutes. Moving it too early tears the skin and prevents crackling.
- Press only at the start: A gentle press for 30 seconds prevents curling; pressing the whole time can squeeze out moisture.
- Blend herb oil quickly: Over-blending can warm the oil and dull the green color. Short bursts keep it bright.
- Drain cauliflower well: Excess water makes mash loose. Steam off moisture in the pot for 1 minute before mashing.
Variations
- Greens instead of mash: Sauté 200 g baby spinach in 1 tbsp olive oil with a pinch of salt for 2–3 minutes, then plate the fish on top with herb oil and lemon zest.
- Chili-lemon herb oil: Add 1/4 tsp red pepper flakes (or 1 small deseeded chili) to the herb oil for gentle heat.
- No blender herb oil: Finely chop the basil and parsley, then stir with the oil, lemon juice, garlic, and salt. It will be more rustic but still delicious.
Storage & Make-Ahead
Best fresh: Crispy skin is at its peak right after cooking.
Herb oil: Refrigerate in a sealed container for up to 3 days. Bring to room temperature and stir before using (it may thicken when cold).
Mash: Refrigerate for up to 3 days. Reheat in a saucepan over low heat with an extra 1–2 tbsp milk, stirring until smooth and hot.
Leftover fish: Refrigerate up to 2 days. Reheat in a 200°C/400°F oven for 6–8 minutes on a rack to help re-crisp the skin (microwaving softens it).
Nutrition (per serving)
Approximate, based on 4 servings: 520 calories, 35 g protein, 34 g fat, 22 g carbohydrates, 4 g fiber, 850 mg sodium.
