Flaky Mediterranean baked fish comes out of the oven with juicy tomatoes, briny olives, softened capers, and sweet roasted peppers all tucked around tender white fillets. The fish stays delicate, the vegetables turn saucy in the oven, and the whole pan tastes brighter than the sum of its parts. It’s the kind of dinner that looks polished on the table but doesn’t ask for much more than a cutting board and one baking dish.
What makes this version work is the two-stage bake. The tomatoes, garlic, olives, capers, and peppers get a head start, which gives them time to soften and release their juices before the fish goes in. That means the fillets steam gently in the flavorful liquid instead of overcooking on a dry pan. A little white wine adds depth, but broth works just as well if that’s what you have open.
Below you’ll find the timing that keeps the fish tender, the ingredient swaps that still taste balanced, and the one step that keeps the pan from turning watery.
The tomatoes and peppers got all jammy in the best way, and the fish stayed flaky instead of drying out. I served it with crusty bread to catch the juices, and that pan disappeared fast.
Save this Mediterranean baked fish for a one-pan dinner with flaky cod, briny olives, and a bright lemony finish.
The Secret to Keeping the Fish Tender While the Pan Gets Savory
Fish overcooks fast, but the vegetables in this dish need a little time to break down and turn glossy. That’s why the pan starts with the tomato mixture alone. By the time the fillets go in, there’s already enough hot, seasoned liquid at the bottom of the dish to protect the fish from drying out and to carry flavor into every bite.
The other trap is crowding the fish too early. If the fillets go in before the tomatoes soften, they sit in a watery mix that never concentrates. Letting the vegetables roast first gives the capers, olives, and peppers a chance to season the whole dish from the inside out.
What Each Ingredient Is Doing in the Baking Dish

- White fish fillets — Cod holds its shape and flakes cleanly, halibut gives you a meatier bite, and sea bass brings a little richness. Use the freshest fish you can find, because this recipe is gentle and doesn’t hide a fishy flavor.
- Cherry tomatoes — These are the base of the sauce. Halving them helps them collapse faster in the oven and release their juices, which is what keeps the dish from feeling dry.
- Kalamata olives and capers — These bring the briny backbone. There isn’t a true substitute for the salty punch they add, but if capers are too sharp for you, rinse them first and add a little less.
- Roasted red peppers — Jarred peppers are one of the easiest shortcuts here. They add sweetness and softness without needing extra cooking time.
- Dry white wine or broth — Wine gives a cleaner, deeper finish, but broth works well if you want to keep it alcohol-free. Use something you’d actually sip from a glass; bad wine turns into bad sauce.
- Olive oil, garlic, oregano, and red pepper flakes — This is the seasoning layer that ties everything together. Slice the garlic thinly instead of mincing it so it softens without burning before the fish is done.
The Two-Stage Bake That Keeps Everything from Turning Mushy
Roasting the vegetables first
Combine the tomatoes, olives, capers, roasted peppers, garlic, wine, olive oil, oregano, and red pepper flakes in the baking dish, then roast them until the tomatoes start to slump and the garlic loses its raw edge. You want the edges to look glossy and the liquid to smell briny and sweet, not just warm. If the mixture still looks dry after 10 minutes, that’s a sign your tomatoes were small or not especially juicy, so give the pan a minute or two more before the fish goes in.
Nestling in the fish
Season the fillets with salt and pepper, then place them right into the hot vegetable mixture. Press them in just enough so the bottoms make contact with the sauce, but don’t bury them completely. That contact helps the fish cook evenly, while the exposed tops stay tender instead of turning cottony. Thin fillets may need the shorter end of the bake time, while thicker ones can use the full 15 minutes.
Knowing when it’s done
The fish is ready when it flakes easily with a fork and the center just turns opaque. Pull it from the oven the moment it reaches that point, because residual heat keeps cooking it for a few minutes after it comes out. If the fillets are opaque all the way through and starting to curl tightly, they’ve gone too far. Finish with parsley and lemon wedges so the last flavor on the plate is bright, not heavy.
Three Ways to Make This Pan Work for What’s in Your Kitchen
Dairy-Free and Naturally Light
This recipe is already dairy-free, which is part of why it tastes so clean and fresh. Keep it that way by using olive oil, not butter, and serving it with rice, potatoes, or crusty bread to soak up the juices.
Make It Without Wine
Broth swaps in cleanly for the wine and still gives you enough liquid to keep the tomatoes juicy as they roast. The flavor will be a little less sharp and a little rounder, which works especially well if you’re serving kids or want a milder pan sauce.
Using a Thicker or Leaner Fish
Halibut needs the full bake time because it’s thicker and meatier, while cod often finishes a little sooner and stays especially tender. If your fillets vary in size, tuck the thinner ones toward the center of the dish and check them first.
Storage and Reheating
- Refrigerator: Store leftovers in an airtight container for up to 2 days. The fish will soften a bit as it sits, but the flavor stays good.
- Freezer: I don’t recommend freezing this dish. The fish and tomatoes both lose their best texture after thawing.
- Reheating: Warm gently in a covered skillet over low heat or in a 300F oven just until heated through. High heat dries out the fish fast and can make the tomatoes collapse into a watery sauce.
