Side Dishes
Baking cod with tomatoes and onions transforms simple ingredients into a restaurant-worthy Mediterranean dish that needs just one pan and 25 minutes of active time. The secret lies in balancing tender, flaky cod with sweet caramelized onions and juicy tomatoes—all baked together until golden and aromatic.
I developed this recipe after years of testing one-pan seafood dishes, and it consistently delivers bistro-quality results with minimal effort.
What makes this dish special is its simplicity without sacrificing flavor. The tomatoes release their natural juices while baking, creating a light sauce that coats the cod, while the onions develop a sweet, caramelized depth.
The key technique is baking at 400°F—hot enough to crisp the onions and tomatoes while keeping the cod perfectly moist, never dry. This method also makes cleanup effortless, leaving you more time to enjoy your meal.
By the time you pull this dish from the oven, you'll have perfectly cooked cod with crisp edges and tender centers, surrounded by caramelized onions and blistered tomatoes. The aroma alone will have everyone at the table anticipating that first bite—flaky, flavorful, and impossibly satisfying.
The dish serves four and pairs beautifully with crusty bread or a simple green salad.
This recipe works equally well for weeknight dinners or special occasions, making it a versatile addition to any seafood lover's repertoire. The Mediterranean flavors shine through without requiring complex techniques, proving that elegant meals can be both approachable and impressive. Let's get baking!
Ingredients for baked cod with tomatoes and onions
Simple seafood ingredients that deliver restaurant-quality Mediterranean flavors with minimal effort.
| Ingredient | Amount | Notes |
|---|---|---|
| Cod Fillets 🐟 | 4 pieces | Skin-on, 6-8 oz each |
| Yellow Onions 🧅 | 1 whole | Thinly sliced, yellow or red |
| Roma Tomatoes 🍅 | 4 whole | Halved lengthwise, seeds removed |
| Extra-Virgin Olive Oil 🫒 | 3 tbsp | High quality, fruity variety |
| Fresh Lemon 🍋 | 1 whole | Juiced, zest optional |
| Garlic Cloves 🧄 | 4 cloves | Minced, fresh preferred |
| Fresh Dill 🌿 | ¼ cup | Chopped, stems removed |
| Fresh Parsley 🌿 | 0.2 cup | Chopped, flat-leaf preferred |
| Diamond Crystal Kosher Salt 🧂 | 1 ½ tsp | For seasoning, adjust to taste |
| Freshly Ground Black Pepper 🌶️ | ½ tsp | Coarsely ground |
| Crusty Baguette 🍞 | 1 whole | For serving, sliced |
| Dried Oregano 🌿 | ½ tsp | Mediterranean blend preferred |
The cod is the star, so grab fresh, skin-on fillets—they stay moist and crisp up beautifully. Whole Foods or local fish markets usually have the best quality, but any reputable seafood counter works. Look for fillets with a clean, ocean scent and firm texture—none of that fishy smell. The onions and tomatoes? Roma tomatoes hold up better than beefsteak when baking, but any firm variety works. I always grab extra onions—they caramelize into sweet, jammy bits that make this dish sing. For the olive oil, California Olive Ranch or Bertolli are my go-tos—they've got that bright, fruity punch that stands up to the seafood.
No fresh dill? Dried dill at one-third the amount gets you close, though it won't have that same bright flavor. Short on Roma tomatoes? Grape tomatoes work in a pinch, but they'll release more juice. The baguette can be any crusty bread—French or Italian loaves both work. Want more depth? Add a splash of white wine (about 2 tbsp) to the pan before baking. The oregano is non-negotiable though—it's that Mediterranean touch that ties everything together. Trader Joe's carries a great Mediterranean blend if you don't have dried oregano on hand.
This dish reheats beautifully—just pop it back in the oven at 350°F for 5-10 minutes. The cod is best eaten fresh, but the caramelized onions and tomatoes taste even better the next day. Store leftovers in an airtight container for up to 2 days. The baguette? Toast it fresh when serving—none of that sad, soggy bread. For extra flavor, sprinkle the cod with a pinch of red pepper flakes before baking. Trust me, it's worth the tiny effort.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this recipe when I’m too tired to wash dishes. Slice onions, halve tomatoes, toss everything on a sheet pan with the cod, a drizzle of olive oil, and a squeeze of lemon—then bake. That’s it. No pots, no pans, just clean-up that takes less time than microwaving leftovers.
- Bright & Simple: The lemon cuts through the richness of the cod while the caramelized onions and tomatoes add this sweet, tangy depth. It’s not fancy, but it’s ridiculously good—like a Mediterranean vacation in your oven without the jet lag.
- Meal Prep Hero: This holds up perfectly for lunches. Bake a big batch on Sunday, portion it out, and reheat slices in the toaster oven for crispy edges. My kids grab it straight from the fridge—no complaints, just clean plates.
- Budget-Friendly Protein: Cod’s affordable, and you’re not drowning it in expensive sauces. A few fillets, a couple onions, some tomatoes, and olive oil stretch to feed four for under $20. Plus, leftovers reheat like they’re fresh—no dry, sad fish here.
Step-by-step instructions for baked cod with tomatoes and onions
Here's how to create a restaurant-worthy Mediterranean dish with minimal effort and maximum flavor.
Prepare the Cod and Vegetable Base
Preheat your oven to 375°F while you prepare the ingredients. Pat the 4 pieces cod fillets dry with paper towels—this ensures a crispy skin and prevents steaming. Place each fillet on a separate sheet of parchment paper, skin-side down, and season both sides generously with 1.5 teaspoons diamond crystal kosher salt and 0.5 teaspoon freshly ground black pepper. I like to press the seasoning firmly so it adheres well.
In a large bowl, combine the thinly sliced yellow onions and halved roma tomatoes (seeds removed). Drizzle with 1 tablespoon extra-virgin olive oil and toss gently to coat. Add the minced garlic cloves, 0.5 teaspoon dried oregano, and a pinch of salt to the vegetable mixture. Let it sit for 5 minutes while you finish prepping the cod.
Assemble the Baking Pan
Arrange the seasoned cod fillets in a single layer in a 9x13-inch baking dish (or similar size). The skin should face down to crisp beautifully. Spoon the onion-tomato mixture evenly around and between the fillets, creating a nest that will baste the cod as it bakes.
Drizzle the remaining 2 tablespoons extra-virgin olive oil over the top of the vegetables and cod. Squeeze the juice from the whole fresh lemon (about 2 tablespoons) evenly over the dish. The acidity will brighten the flavors and prevent the fish from overcooking. Sprinkle the 0.25 cup chopped fresh dill and 0.2 cup chopped fresh parsley over everything, pressing lightly so they stick.
Bake Until Flaky and Golden
Transfer the baking dish to the preheated oven and bake for 15 minutes. After this initial time, you'll notice the tomatoes begin to soften and the edges of the cod turn opaque. This is when the magic starts happening—don't peek yet, as opening the oven door can cause temperature fluctuations.
Continue baking for an additional 10-12 minutes until the cod flakes easily when tested with a fork and the tomatoes have collapsed slightly, releasing their juices. The skin should be golden brown and crisp, while the flesh remains tender. The total baking time should be 25-27 minutes—watch closely in the last 5 minutes to prevent overcooking.
Rest and Serve with Fresh Bread
Remove the dish from the oven and let it rest for 5 minutes before serving. This resting period allows the juices to redistribute, ensuring each bite is moist and flavorful. The cod should pull apart easily with a fork, and the tomatoes should be tender but still hold their shape slightly.
Slice the whole crusty baguette into thick pieces and serve alongside the cod. The crusty bread is perfect for soaking up the delicious tomato and herb sauce. Garnish each serving with an extra sprinkle of fresh parsley and a lemon wedge to brighten the plate. This dish comes together beautifully with minimal effort but delivers bistro-quality results every time.
Pro Tips For Making Baked Cod With Tomatoes And Onions
- Preheat Pan, Not Just Oven: I learned this the hard way—cold pans make sad, steamed fish. Heat your baking dish (or skillet, if you’re stovetop-baking) for 5 minutes before adding anything. The onions and tomatoes will caramelize faster, and the cod won’t sit in a lukewarm pool while you wait for the oven to do its thing.
- Slice Onions Thinly: Thin, even slices (about 1/8-inch) cook through without turning to mush. Thick rings? They’ll sit like rocks under the cod. Use a sharp knife and cut parallel to the root end—it’s faster and cleaner than you’d think.
- Skip the Lemon Zest: Yes, lemon is bright, but zest can make the dish taste bitter if overdone. Stick to juice (1-2 tablespoons) and a wedge squeezed over the finished dish. The acid matters most—zest is just extra work unless you’re going for a fancy presentation.
- Press Cod Flat: Uneven fillets cook unevenly. Gently press them down with your palm (wear a towel—it’s slippery) before adding the tomato-onion mix. This guarantees even browning and prevents one side from staying raw while the other flakes apart.
Wine and beer pairings for these flavors
White Wine Classics
A crisp Sauvignon Blanc from the Loire Valley is my go-to pairing for this dish—its bright acidity and citrus notes cut through the richness of the cod while complementing the sweet caramelized onions.
Look for a bottle with 12-13% ABV like Oyster Bay Sauvignon Blanc or Bouchard Père & Fils. The wine’s herbal undertones also echo the fresh dill and parsley in the recipe. 🍷
For something slightly richer, try a Vermentino from Sardinia. This Mediterranean white has a mineral finish that enhances the dish’s natural flavors without overpowering them. I love Cantina Mesu ’e Mesus Vermentino—it’s affordable and consistently delivers. Serve it slightly chilled at 45-48°F to highlight its crispness.
Light Red Options
If you prefer red wine, a Pinot Noir with subtle fruit notes works surprisingly well. Choose a New Zealand Pinot Noir like Felton Road Pinot Noir—its bright cherry flavors and silky texture balance the dish’s acidity.
Avoid heavy, tannic reds that would clash with the delicate cod. Decant for 15-20 minutes before serving to soften the wine’s edges.
For a more Mediterranean twist, try a Grenache rosé from Provence. The Whispering Angel rosé has a delicate strawberry flavor that pairs beautifully with the tomatoes and herbs. Serve it well-chilled at 40-45°F to maintain its freshness and complement the dish’s brightness.
Beer Pairings
A Belgian Witbier like Hoegaarden is my top beer recommendation. Its coriander and citrus notes mirror the lemon and herbs in the dish, while the effervescence cleanses your palate between bites. Serve it very cold at 38-40°F to enhance its refreshing qualities. 🍺
For a lighter option, try a German Pilsner like Warsteiner. Its crisp, hoppy profile balances the dish’s richness without competing. Avoid heavy stouts or dark ales—they’ll overpower the delicate flavors of the cod and vegetables.
Non-Alcoholic Options
For a refreshing non-alcoholic pairing, serve sparkling lemonade made with fresh lemon juice and top-quality sparkling water like San Pellegrino. Add a pinch of salt and a sprig of mint for a Mediterranean twist. The effervescence and citrus notes enhance the dish’s brightness.
Alternatively, try a cucumber-mint infused water. Thinly slice ½ cucumber and muddle with 4 mint leaves in a pitcher. Add ice and let it infuse for 30 minutes before serving. The cool, crisp flavors provide a perfect counterpoint to the warm, caramelized dish.
Nutrition facts
Frequently asked questions
Can I substitute cod with another white fish?
Yes! This recipe works beautifully with halibut, sea bass, or mahi-mahi—just adjust cooking time slightly. Halibut needs 2-3 minutes less at 400°F since it stays moist longer. Avoid delicate fish like flounder, which can dry out too quickly. The tomato-onion base remains the same, so flavors stay consistent.
Why do my tomatoes turn mushy instead of caramelized?
Overcooking or using watery tomatoes causes mushiness. Use Roma tomatoes (they hold shape better) and bake at 375°F for only 25-27 minutes total. Halve them lengthwise and remove seeds to reduce excess juice. If your oven runs hot, reduce temp to 350°F and add 5 minutes to the baking time.
How do I make this dish ahead of time?
Assemble the dish up to 24 hours ahead and refrigerate uncovered (so flavors meld). Bake straight from the fridge—just add 5-7 extra minutes at 400°F. For best texture, reheat only the cod portion (microwave 1 minute or oven 10 minutes at 350°F) and warm the veggies separately to avoid sogginess.
Can I add other vegetables to this recipe?
Try zucchini slices (they soften nicely) or bell peppers (add 5 minutes to baking time). For extra Mediterranean flair, toss in cherry tomatoes or fennel bulbs (thinly sliced). Just reduce onions slightly to maintain balance—too many veggies can dilute the dish's signature tomato-onion flavor.
What's the secret to crispy cod skin?
Pat the fillets bone-dry before seasoning, and place them skin-side down in the pan. A light brush of olive oil on the skin before baking creates a nonstick barrier that crisps perfectly. Avoid overcrowding the pan—leave ½-inch space between fillets for even heat circulation. Bake at 400°F for crispiness without drying out the flesh.
