Quick Recipe Version (TL;DR)
Quick Ingredients
- 1.5 lb (680 g) firm white fish fillets (cod, haddock, halibut), skinless
- 4 cups (about 2 pints / 600 g) cherry or grape tomatoes
- 1 small red onion, thinly sliced
- 3 cloves garlic, thinly sliced
- 1/3 cup (60 g) pitted Kalamata olives, halved
- 2 tbsp capers, drained (optional but recommended)
- 4 tbsp extra-virgin olive oil, divided
- 2 tsp dried oregano, divided
- 1 tsp kosher salt, divided (plus more to taste)
- 1/2 tsp freshly ground black pepper, divided
- 1/4 tsp red pepper flakes (optional)
- Zest and juice of 1 lemon, plus wedges for serving
- 3 oz (85 g) feta cheese, crumbled
- 2 tbsp chopped fresh parsley or dill, for garnish
Do This
- 1. Heat oven to 400°F (200°C). Lightly oil a 9×13 in (23×33 cm) baking dish.
- 2. In the dish, toss tomatoes, onion, garlic, olives, capers, 3 tbsp olive oil, 1 tsp oregano, 1/2 tsp salt, 1/4 tsp pepper, and red pepper flakes.
- 3. Roast 10–12 minutes until tomatoes start to soften and release juices.
- 4. Pat fish dry; rub with remaining 1 tbsp olive oil, 1 tsp oregano, 1/2 tsp salt, 1/4 tsp pepper, and lemon zest.
- 5. Nestle fish into the hot tomato mixture. Spoon some juices around fish. Bake 10–15 minutes, until opaque and flaky (internal temp 135–140°F / 57–60°C).
- 6. Top with crumbled feta; return to oven 2–3 minutes to slightly soften the cheese.
- 7. Finish with lemon juice and parsley or dill. Serve warm with extra lemon wedges and plenty of pan juices.
Why You’ll Love This Recipe
- Everything bakes in one pan: minimal cleanup, maximum flavor.
- Classic Greek flavors: sweet roasted tomatoes, briny olives, tangy feta, lemon, and oregano.
- Fast enough for weeknights but pretty enough for guests.
- Works with many types of firm white fish, fresh or frozen (thawed).
Grocery List
- Produce: Cherry or grape tomatoes, red onion, garlic, lemon, fresh parsley or dill.
- Dairy: Feta cheese.
- Pantry: Firm white fish fillets, extra-virgin olive oil, Kalamata olives, capers, dried oregano, red pepper flakes, kosher salt, black pepper.
Full Ingredients
For the Tomato–Olive Base
- 4 cups cherry or grape tomatoes (about 2 pints / 600 g)
- 1 small red onion, halved and thinly sliced
- 3 cloves garlic, thinly sliced
- 1/3 cup (about 60 g) pitted Kalamata olives, halved
- 2 tbsp capers, drained (optional but adds great briny flavor)
- 3 tbsp extra-virgin olive oil
- 1 tsp dried oregano
- 1/2 tsp kosher salt
- 1/4 tsp freshly ground black pepper
- 1/4 tsp red pepper flakes (optional, for a gentle heat)
For the Fish
- 1.5 lb (680 g) firm white fish fillets, skinless (cod, haddock, halibut, pollock, or snapper)
- 1 tbsp extra-virgin olive oil
- 1 tsp dried oregano
- 1/2 tsp kosher salt (or to taste)
- 1/4 tsp freshly ground black pepper
- Finely grated zest of 1 lemon
To Finish and Serve
- 3 oz (85 g) feta cheese, crumbled
- Juice of 1/2–1 lemon, to taste, plus extra lemon wedges for serving
- 2 tbsp chopped fresh flat-leaf parsley or fresh dill (or a mix)
- Cooked rice, orzo, couscous, or crusty bread (optional, for serving alongside)

Step-by-Step Instructions
Step 1: Preheat the oven and prepare the baking dish
Preheat your oven to 400°F (200°C) with a rack in the middle position. Lightly grease a 9×13 in (23×33 cm) baking dish with a little olive oil or nonstick spray. A white or light-colored ceramic or glass dish works well because it shows off the colors of the tomatoes, olives, and fish.
Step 2: Build the tomato–olive base
Add the cherry tomatoes, sliced red onion, sliced garlic, Kalamata olives, and capers (if using) directly into the prepared baking dish. Drizzle with 3 tbsp olive oil, then sprinkle over 1 tsp dried oregano, 1/2 tsp kosher salt, 1/4 tsp black pepper, and the red pepper flakes, if using.
Toss everything together right in the dish until the tomatoes and onions are nicely coated with oil and seasonings. Spread the mixture into an even layer so it roasts evenly.
Step 3: Roast the tomatoes and aromatics
Place the dish in the preheated oven and roast for 10–12 minutes, until the tomatoes are just starting to soften and some are beginning to split or wrinkle. This quick roast helps concentrate their sweetness and creates a flavorful, saucy base for the fish.
While the tomatoes are roasting, move on to seasoning the fish so everything is ready to go when the pan comes out of the oven.
Step 4: Season the fish
Pat the fish fillets very dry on both sides with paper towels. Dry fish browns and bakes more evenly and avoids turning watery in the pan. Place the fillets on a plate or small tray.
Drizzle the fish with 1 tbsp olive oil, then sprinkle evenly with 1 tsp dried oregano, 1/2 tsp kosher salt, and 1/4 tsp black pepper. Add the lemon zest on top. Gently rub the seasonings and zest over both sides of the fillets so they are well coated. Keep the fish at room temperature while you wait for the tomato mixture to finish its first roast.
Step 5: Nestle the fish into the pan and bake
After the tomatoes have roasted for 10–12 minutes, carefully remove the baking dish from the oven. The tomatoes should be sizzling and starting to release their juices. Use a spoon to gently push the tomato mixture aside in a few spots to create spaces for the fish.
Lay the seasoned fish fillets into the dish, tucking them slightly down into the tomato–olive mixture. Spoon some of the flavorful juices and a few tomatoes and olives around and over the edges of the fish, but try to keep the tops of the fillets mostly exposed so they bake nicely.
Return the dish to the oven and bake for 10–15 minutes, depending on the thickness of your fillets. Thin fillets may be done in 8–10 minutes, while thick ones can take closer to 15. The fish is done when it is opaque and flakes easily with a fork, and the internal temperature reads 135–140°F (57–60°C) at the thickest part.
Step 6: Add the feta and finish with lemon and herbs
When the fish is almost done, carefully remove the dish from the oven. Sprinkle the crumbled feta evenly over the fish and tomatoes. Return the dish to the oven for another 2–3 minutes, just until the feta is warmed through and slightly soft at the edges. It does not need to melt completely.
Take the dish out of the oven and immediately squeeze lemon juice over the fish and vegetables (start with the juice of 1/2 lemon and add more to taste). Scatter the chopped fresh parsley or dill over the top. The contrast of the bright herbs, salty feta, and rich pan juices is what makes this dish really sing.
Step 7: Serve and enjoy
To serve, gently lift each piece of fish from the pan, spooning plenty of the roasted tomatoes, olives, onions, and pan juices over and around it. Add extra feta crumbles and herbs from the dish if you like.
This Greek-style baked fish pairs beautifully with orzo, rice, couscous, or a slice of crusty bread to soak up the juices. Serve with lemon wedges on the side for anyone who likes an extra squeeze of brightness at the table.
Pro Tips
- Choose the right fish: Go for firm, mild white fish like cod, haddock, halibut, pollock, or snapper. Very delicate fish (like sole) can overcook quickly in this style of bake.
- Adjust for thickness: If your fillets are very thick (over 1 inch / 2.5 cm), start checking them at 12 minutes but be prepared for closer to 15. If they are thin, check as early as 8–10 minutes.
- Use very ripe tomatoes: Sweet, ripe cherry or grape tomatoes will create a naturally rich sauce. If your tomatoes are out of season, add a tiny pinch of sugar (1/4 tsp) to balance the acidity.
- Do not overbake: Fish continues to cook a little from residual heat. Pull it from the oven when it is just opaque in the center for the most tender, flaky texture.
- Make it a complete meal: Scatter partially cooked baby potatoes or canned chickpeas (drained) into the tomato mixture before the first roast to bulk it up.
Variations
- Herb-packed version: Swap half the dried oregano for fresh herbs such as chopped oregano, thyme, or basil. Stir some into the tomatoes before roasting and sprinkle more on top with the parsley or dill.
- Spicy Greek-style bake: Increase red pepper flakes to 1/2–3/4 tsp, and add a sliced fresh chili to the tomato mixture. Finish with an extra squeeze of lemon to balance the heat.
- Mediterranean vegetable boost: Add thin slices of zucchini or red bell pepper to the tomato mixture before the first roast for extra color and veg.
Storage & Make-Ahead
This dish is best enjoyed fresh, when the fish is tender and flaky. However, leftovers can be stored in an airtight container in the refrigerator for up to 2 days. Reheat gently in a covered dish in a 325°F (165°C) oven for 10–12 minutes, just until warmed through, or briefly in the microwave on low power. Avoid overheating, as the fish can dry out.
You can prepare the tomato–olive base up to a few hours ahead: assemble everything in the baking dish, cover, and refrigerate. When ready to cook, let it sit at room temperature for 15–20 minutes, then proceed with the first roast and continue with the recipe as directed. Season the fish just before baking for the best texture.
Nutrition (per serving)
Approximate values for one of four servings (without sides): 400 calories, 33 g protein, 24 g fat, 8 g carbohydrates, 2 g fiber, 4 g sugars, 720 mg sodium. Actual values will vary based on the specific fish, feta, and olives you use.
