Baked fish is especially inviting when there is something good to spoon over it. In this Greek-style dish, tomatoes, red onion and olives roast together before the fish goes into the oven. The vegetables become a juicy base, while oregano, garlic and lemon provide plenty of flavour. Bringing the vegetables along first is the key: they have time to soften without making the fish wait in the heat.
This is a shallow oven bake with distinct fillets and a loose tomato sauce, ideal for serving straight from the dish. Bread, cooked grains or a simple green vegetable will turn it into dinner. The recipe serves four, but you can halve the ingredients and use a smaller dish when cooking for two.
Greek-Style Baked Fish With Tomatoes and Olives
Serves: 4. Preparation: 15 minutes. Cooking: approximately 35 to 40 minutes, depending on the thickness of the fish.
Ingredients
- 4 boneless white fish fillets, such as cod, haddock or hake, about 150 to 180 g each
- 500 g cherry or baby plum tomatoes, halved
- 1 medium red onion, peeled and thinly sliced
- 3 garlic cloves, peeled and thinly sliced
- 80 g pitted Kalamata or other black olives, drained and halved
- 2 tablespoons olive oil, divided
- 1 teaspoon dried oregano
- 1 unwaxed lemon, washed
- 2 tablespoons water, plus a little extra if needed
- A small handful of flat-leaf parsley, roughly chopped
- Freshly ground black pepper
- A small pinch of salt, if needed
Method
- Heat the oven to 200 degrees Celsius, or 180 degrees Celsius fan. Choose a shallow baking dish that will hold the fish in a single layer with a little room between the pieces. A dish approximately 30 by 23 cm usually works well.
- Put the tomatoes, onion, garlic and olives into the dish. Add 1 tablespoon of olive oil, the oregano, water and a few grinds of pepper. Finely grate over half the lemon zest. Toss everything together and spread it out evenly.
- Roast for 20 to 25 minutes, stirring halfway through. The onion should soften and the tomatoes should begin to collapse into their juices. If the bottom looks dry, stir in another tablespoon of water.
- Meanwhile, pat the fish dry with kitchen paper and check for any remaining bones. Brush the fillets with the remaining tablespoon of olive oil and season lightly with pepper. Tuck any very thin tail ends underneath to make the pieces more even in thickness.
- Stir the tomato mixture, then nestle the fillets into it with their tops exposed. Spoon a little tomato juice over each piece. Return to the oven for 12 to 15 minutes, checking earlier for thin fillets. Particularly thick pieces may need longer.
- Check the thickest part of each fillet. It should be opaque throughout and separate easily into flakes, with no translucent centre. Return any undercooked pieces to the oven briefly, checking again before serving.
- Squeeze 1 tablespoon of lemon juice over the fish and scatter with parsley. Taste the sauce before adding salt, as the olives already provide saltiness. Cut the remaining lemon into wedges and serve alongside.
Why the vegetables go in first
Fish cooks quickly, whereas raw onion needs longer to lose its firm bite. Roasting the tomato mixture on its own gives you a softened base before the fillets arrive. The garlic is mixed among the moist tomatoes, helping it flavour the juices without sitting exposed on top of the fish.
The shape of the dish makes a difference. A shallow baking dish allows some moisture to evaporate while keeping enough liquid around the vegetables to form a sauce. A very large tray can leave the tomatoes dry around the edges, while a deep, crowded dish may produce a watery base.
Before adding the fish, look for a glossy layer of juice around the softened tomatoes. Add a small splash of water if necessary. If the mixture seems excessively wet, leave it in the oven for a few more minutes before adding the fillets. Adjusting the base at this stage is easier than trying to reduce it with cooked fish still in the dish.
Choosing and cooking the fish
Cod, haddock and hake all suit these flavours. Buy pieces of similar thickness where possible, since thickness affects the cooking time more than weight alone. Check each fillet separately if the pieces vary, and lift out any that finish sooner.
Frozen fish is useful too. Defrost it in the fridge following the packet instructions, drain off the thawing liquid and pat it dry. Start this recipe with fully defrosted fillets; adding them frozen would change the timing and release extra water into the vegetables.
Keep your side dishes nearly ready before the fish goes into the oven. Once the fillets are cooked, they are best served promptly. Use a broad spatula or fish slice to lift each piece, then spoon the tomatoes, olives and juices around it.
Serving ideas
Wholemeal bread makes a straightforward accompaniment for soaking up the sauce. Add a crisp cucumber and lettuce salad, dressed lightly with lemon and olive oil. With garlic, olives and oregano already in the baking dish, the salad can stay simple.
Alternatively, serve the fish over bulgur wheat, couscous or brown rice. Cook your chosen grain according to its packet instructions while the tomatoes roast. Steamed green beans or broccoli also work well alongside, especially when you want another vegetable without preparing a separate sauce.
Simple variations
- Different tomatoes: use 500 g ripe larger tomatoes, cut into small wedges. Check the moisture before adding the fish, as their juice content can vary.
- Extra vegetables: add one thinly sliced red pepper to the tomato mixture. Allow it to soften during the first roasting stage before you add the fillets.
- A different finish: replace the parsley with chopped fresh dill. Scatter it over after baking to keep its flavour fresh.
- Green olives: substitute the same drained weight of pitted green olives. Taste before seasoning, as different olives vary in saltiness.
Preparing ahead and storing leftovers
You can roast the tomato base ahead, cool it promptly and refrigerate it in a covered container for up to two days. Reheat it until thoroughly hot before adding the raw fish, then follow the final baking steps. Check the fillets for doneness rather than relying entirely on the suggested time.
Refrigerate cooked leftovers in a shallow covered container within two hours and eat within two days. Reheat only once, until steaming hot throughout. A spoonful of water will help loosen the sauce during gentle reheating. The fish will become firmer, so for the best texture, cook only the fillets you plan to eat and keep any spare tomato base separately.

