Foil packet fish comes out tender, flaky, and packed with lemony steam that keeps the fish from drying out over a campfire or grill. The vegetables soften in the same packet, soaking up butter, garlic, and herb flavor while the fish stays clean and bright. When it’s done right, you open the foil and get a complete dinner without a pile of pans to wash afterward.
What makes this version work is the layering. The butter and lemon sit right on top of the fillets, where they baste the fish as it cooks, and the sliced zucchini and bell pepper act like a little rack so the fish stays lifted from the hottest part of the packet. Heavy-duty foil matters here because thinner foil tears when you flip or move it over the fire. That sealed pocket of steam is what turns a simple mix of ingredients into something that tastes carefully cooked instead of thrown together.
Below, I’ve laid out the small details that keep the fish from overcooking, the best way to fold the packets so they stay closed, and a few smart swaps if you’re working with different fish or cooking indoors.
The fish stayed so flaky and the zucchini came out perfectly tender without turning mushy. I opened the packets right on the camp stove and the lemon butter smelled incredible.
Foil packet fish with lemon, butter, and vegetables is the kind of campfire dinner that comes out flaky and fast.
The Mistake That Makes Foil Packet Fish Dry Out
The biggest failure with foil packet fish is treating it like it can sit in direct heat the whole time and still stay juicy. It can’t. Fish cooks fast, and once the packet gets too hot, the steam turns aggressive and the edges overcook before the center is ready. The goal is gentle, enclosed heat that cooks the fish through while the vegetables soften underneath it.
The other thing people miss is packet shape. A tight seal matters, but the fish still needs a little air space inside the foil so steam can circulate instead of pressing the fillet flat against the hottest surface. If your packets are cramped, the vegetables stay underdone and the fish can go chalky at the top. Build the packet with enough room to puff slightly while it cooks.
- Heavy-duty aluminum foil — This is worth using here because thinner foil tears when you move the packets or open them over the fire. If you only have regular foil, double it.
- Fish fillets — Salmon holds up best if your heat runs uneven, but trout and tilapia work well too. Choose fillets of similar thickness so they finish at the same time.
- Lemon slices — These do more than add flavor. They steam over the fish and keep the top from drying out. Use fresh lemons; bottled juice won’t give you the same bright aroma.
- Zucchini and bell pepper — These vegetables cook quickly and release just enough moisture to keep the packet from going dry. Slice them thin enough to soften in 15 to 20 minutes, not so thin they disappear.
- Butter and garlic — Butter carries the garlic and herbs into the fish as it melts. If you need a dairy-free version, olive oil works, but the finished packet will taste cleaner and a little less rich.
What Each Ingredient Is Actually Doing in Foil Packet Fish

- Quality ingredients (start with the best) — Good starting ingredients make a difference. Don’t skimp here.
- Proper temperature (hot enough for browning) — Temperature is critical for developing flavor. Low heat just steams.
- Oil or fat (adequate for cooking) — The fat carries flavor and prevents sticking. Don’t be shy with it.
- Salt and seasoning (applied strategically) — Season at different stages for layered flavor. Not just at the end.
- Timing (watch carefully, cook gently) — Don’t rush. Let the food cook at its own pace for best results.
- Optional: finishing flavors (citrus, herbs, sauce) — These add brightness and complexity. Apply at the end so they stay vibrant.
- Resting if needed (depends on the recipe) — Some dishes benefit from resting. This allows flavors to settle.
- Final taste check (adjust seasoning) — Always taste before serving. The food might need a touch more salt or acid.
How to Build the Packet So the Fish Steams, Not Frays
Start With the Vegetables as the Base
Lay the zucchini and bell pepper on the foil first, then set the fish on top. That keeps the fish from sitting directly on the hottest part of the packet and gives the vegetables a head start. If you pile the vegetables on top of the fish, they’ll cook unevenly and the fillet can tear when you open the packet. Keep everything in a single layer as much as possible so the heat moves through evenly.
Season Before You Seal
Salt, pepper, garlic, herbs, and butter all go on before the packet closes. Once the foil is sealed, the butter melts and turns into the cooking liquid that bastes the fish from above. Don’t overdo the salt if you’re using salmon; it can taste harsh once the lemon concentrates in the steam. The lemon slices should sit right over the fish, not off to the side, so their juice drips directly onto the fillet.
Fold for Steam, Not Leakage
Bring the long sides of the foil together and fold them down in tight, repeated folds, then crimp the ends closed. You want the packet sealed enough that the steam stays in, but not so tight that it splits when the fish releases moisture. If you see juice escaping before cooking starts, reopen and reseal it. A leak means you’ll lose the steam that makes the fish tender.
Cook Until the Center Flakes Easily
Set the packets over medium heat and leave them alone for 15 to 20 minutes, depending on thickness. Thin tilapia may finish faster; thick salmon fillets need the full time. The fish is done when it flakes with a fork and looks opaque all the way through, with the vegetables tender but still holding shape. If the packet is over very hot coals, move it to a cooler spot after a few minutes so the bottom doesn’t scorch.
Use Salmon for the Richest Result
Salmon stays moist even if your heat varies a little, which makes it the safest choice for campfire cooking. It brings a richer flavor and a firmer texture than tilapia, so the packet feels a little more substantial.
Make It Dairy-Free
Swap the butter for olive oil or a dairy-free butter substitute. You’ll lose a little of the round, creamy finish, but the lemon, garlic, and herbs still come through cleanly.
Use What You Have for the Vegetables
Green beans, asparagus, or thin-sliced onions all work here. Just keep the pieces small enough to cook in the same window as the fish, or you’ll end up with perfect fillets and raw vegetables.
Oven Method for At-Home Cooking
Bake the sealed packets on a sheet pan at 400°F until the fish flakes easily, usually 15 to 20 minutes. This gives you the same tender steam without needing a grill or campfire.
Storage and Reheating
- Refrigerator: Store leftovers in an airtight container for up to 2 days. The fish will lose a little of its just-cooked texture, but it’s still good cold or gently reheated.
- Freezer: I don’t recommend freezing the finished packets. Fish and zucchini both turn soft after thawing, and the lemon slices go bitter.
- Reheating: Warm leftovers slowly in a covered skillet over low heat or in a 300°F oven just until heated through. High heat dries the fish out fast, and that’s the mistake most people make with leftovers.
Questions I Get Asked About This Recipe

Foil Packet Fish
Ingredients
Equipment
Method
- Place each fish fillet on a sheet of heavy-duty aluminum foil.
- Top each fillet with minced garlic, dill or parsley, salt, and pepper, then add a pat of butter.
- Arrange lemon slices over the fish and surround it with zucchini and bell pepper.
- Fold the foil into sealed packets, crimping edges tightly so steam stays trapped.
- Place the packets on a campfire grate over medium heat for 15-20 minutes, until the fish flakes easily with a fork.
- Carefully open the foil packets and serve the fish and vegetables right away.