
Salmon with Grilled Tomatoes and Zucchini Ribbons
Ingredients
- 4 salmon fillets, 6 oz (170 g) each, skin on
- 2 medium zucchini, about 1 lb (450 g) total
- 2 cups (300 g) cherry tomatoes, halved
- 3 tablespoons (45 ml) olive oil, divided
- 2 cloves garlic, minced
- 1 teaspoon (5 g) kosher salt, divided
- 1/2 teaspoon (1 g) black pepper, divided
- 1 lemon, half juiced, half sliced
- 2 tablespoons (8 g) chopped fresh basil or parsley
Method
- Set oven to 425°F (220°C). Line a sheet pan with foil or parchment.
- Pat salmon fillets dry with paper towels and let them sit at room temperature for 10 minutes while you prep the vegetables.
- Using a vegetable peeler or mandoline, shave zucchini lengthwise into ribbons about 1/8 inch (3 mm) thick. Lay ribbons on a clean towel and pat dry; wet zucchini will steam instead of char.
- Halve cherry tomatoes and spread them cut-side up on the sheet pan. Toss with 1 tablespoon (15 ml) olive oil, half the garlic, 1/4 teaspoon salt, and a pinch of pepper. Roast alone for 5 minutes to start rendering their liquid.
- Push tomatoes to one side of the pan. Add salmon fillets skin-side down to the empty half, brushed with 1 tablespoon (15 ml) olive oil and seasoned with 1/2 teaspoon salt and 1/4 teaspoon pepper.
- Roast salmon and tomatoes together for 8 to 10 minutes, until salmon reaches an internal temperature of 125°F (52°C) for medium or 130°F (54°C) for medium-well, and flakes when pressed at the thickest point.
- While the salmon roasts, heat remaining 1 tablespoon (15 ml) olive oil in a wide skillet over high heat. Add zucchini ribbons and remaining garlic in a single uncrowded layer. Toss for 60 to 90 seconds, just until edges soften and light char spots appear. Remove immediately; overcooked ribbons turn gray and watery.
- Season zucchini with remaining salt and pepper and a squeeze of lemon juice.
- Plate salmon over zucchini ribbons, spoon tomatoes and their pan juices alongside, scatter basil or parsley, and finish with lemon slices.
Salmon cooks through in under 10 minutes at 425°F (220°C); zucchini ribbons take 90 seconds in a hot skillet before they turn gray and watery. Those two facts are why this dish is built as three separate cooking events on one sheet pan and one skillet, not one long roast where everything goes soft together.
Why the zucchini and tomatoes cook separately from the salmon
Cherry tomatoes need 5 minutes of head start in the oven before the salmon joins them, because tomatoes release water as they roast and that water needs somewhere to go before a protein sits in it. Skip the head start and your salmon’s skin, if left on, will sit in tomato liquid and steam rather than crisp.
Zucchini ribbons are the more fragile piece. Shaved to about 1/8 inch (3 mm) with a peeler or mandoline, they are nearly all surface area and almost no structure. Roasted alongside the fish for the full 8 to 10 minutes, they collapse into pale, wet strips. A hot skillet for 60 to 90 seconds, in a single uncrowded layer, chars the edges before the interior turns to mush. Crowding the pan is the more common mistake than overcooking: too many ribbons at once drop your skillet’s temperature and the zucchini steams in its own runoff instead of searing.
Getting the salmon’s internal temperature right
Pull the salmon at an internal temperature of 125°F (52°C) for a medium, still-translucent center, or 130°F (54°C) for medium-well where the flesh flakes cleanly but stays moist. Carryover heat will add another 3 to 5 degrees as it rests, so if you pull it at 130°F (54°C), expecting 135°F (57°C) on your plate is normal. Fillets at 6 oz (170 g) each and roughly 1 inch (2.5 cm) thick hit that range in 8 to 10 minutes at 425°F (220°C); thinner tail-end pieces will finish closer to 6 minutes and need checking early.
Grilled tomatoes and zucchini ribbons: the two ways this dish fails
Watery, gray zucchini ribbons. This is nearly always crowding, not time. Ribbons piled two or three deep in your skillet trap steam underneath, and steam cooks the zucchini from a texture problem into a mush problem before any char forms on top. Work in two batches if your skillet is smaller than 12 inches (30 cm) across, and keep the heat high the whole time rather than dropping it to compensate.
Dry, chalky salmon. This is a temperature and timing problem, not a seasoning one. Salmon carried past 140°F (60°C) internal loses its fat-rendered texture and turns dense and dry no matter how much oil or lemon you add afterward. An instant-read thermometer inserted into the thickest part of the fillet, pulled at 125 to 130°F (52 to 54°C), is the only reliable check; color and flake are easy to misread on a fillet that’s already gone too far.
Swapping the salmon or vegetables, and the one substitution that changes the dish
Skinless salmon works the same way, just reduce roasting time by roughly 1 minute since there’s no skin insulating the flesh from the pan. Yellow summer squash can stand in for zucchini in equal weight with no change to technique. Grape tomatoes can replace cherry tomatoes at the same 2 cups (300 g).
The substitution that does not work cleanly: frozen salmon fillets cooked straight from frozen. Frozen fish releases far more water as it thaws in the oven, which pools on your pan and steams both the fish and anything roasting near it, including the tomatoes. Thaw your fillets fully in the refrigerator, pat them dry, and let them come toward room temperature for 10 minutes before they go in the oven.
Questions cooks ask about salmon with zucchini and tomatoes
Can this be made with frozen zucchini instead of fresh ribbons?
Not for the ribbon technique described here. Frozen zucchini has already broken down structurally and will not char; it will only release water and turn to mush in a hot skillet. Fresh zucchini, shaved just before cooking, is required for the texture this recipe is built around.
Does the salmon need to be skin-on?
No. Skin-on salmon crisps against the sheet pan and is easier to lift without breaking, but skinless fillets work with about 1 minute less cooking time since there’s no skin layer slowing heat transfer.
What if the zucchini ribbons keep steaming instead of charring?
Your pan is either overcrowded or not hot enough. Use a skillet at least 12 inches (30 cm) wide, get it fully preheated over high heat before the zucchini goes in, and cook in two batches if needed rather than one crowded batch.
Can the tomatoes be roasted longer for more char?
Yes, up to about 12 minutes total before they start collapsing into pure sauce rather than holding their shape. Past that point they still taste fine but no longer work as a distinct component on your plate.
How long the leftovers keep, and what reheats and what doesn’t
Refrigerate salmon, tomatoes, and zucchini separately in airtight containers for up to 2 days. The zucchini ribbons do not hold well: they release liquid as they sit and will be noticeably softer by day two, so eating them the same day or the next is best. Salmon reheats gently in a 275°F (135°C) oven for about 8 minutes, just until warmed through; a microwave will push it past that dry, chalky point discussed above. The tomatoes and their pan juices actually improve slightly overnight and are good served cold over your reheated salmon.
More entrees
See all →
Keto sausage, veggie and cauliflower rice fry-up
A 25-minute keto sausage and vegetable stir fry with cauliflower rice, sized so the pan never steams.
Fish Tacos with Mango Salsa and Avocado Cream
Firm white fish, cold mango salsa, and avocado cream in warm tortillas, built to hold texture instead of…
Weeknight chicken curry with a masala base that doesn’t split
A chicken curry built on a real masala base, with the exact temperatures and times that keep the…
Keto Chicken Tacos: Instant Pot or Crock-Pot, No Salsa
Keto chicken tacos made with 3 lb (1.36 kg) chicken thighs, no salsa, no added sugar, Instant Pot…