Fish Chowder Recipe
Inside: How a real roux, not cornstarch, gives this fish chowder its coat-the-spoon texture, why the potatoes cook in their own pot, and what to reach for if fish stock isn’t in your pantry.
My fish chowder recipe uses readily available tilapia and everyday vegetables, like celery and potatoes, for a New England-style soup your family will crave. This fish chowder (or chowda, if you’re saying it the way they do north of Boston) is thick enough to coat a spoon. It’s the kind of chowder you crush a handful of saltines over and dig into while it’s still steaming.

This is the kind of meal that tastes as if it came from your grandmother’s kitchen. A thick, creamy, stick-to-your-ribs soup loaded with chunks of fish and potatoes.
This isn’t the only chowder in my archive, and they’re not interchangeable.
- My Corn Chowder with Potatoes and Bacon is a creamy, chunky summer soup built on bacon and potatoes, not fish.
- Authentic New England Clam Chowder uses whole littleneck clams for the broth. It’s creamy, but looser than this one; the spoon won’t stand up on its own.
- This Seafood Chowder Recipe goes brothier, with mussels, clams, fish, and shrimp and only a touch of cream for richness instead of a full roux.
- And Conch Chowder skips the cream entirely. It’s chunky, spicy, and tastes like the islands.
You’ll love this fish chowder recipe for another reason: It barely dents the grocery budget. One pot feeds the whole family. I make mine with tilapia; it’s inexpensive and sold at basically any grocery store.
Why this recipe works:
- A chowder that’s actually thick: built on a classic butter-and-flour roux, not a workaround like instant potato flakes or a cornstarch slurry.
- Vermouth before the stock: deglaze the pot and give the base a savory backbone plain stock doesn’t provide on its own.
- Stock added the right way: liquid stock or clam juice goes in stages, the classic technique for a lump-free base. Dump it in all at once, and you get a grainy or clumpy stock instead of a creamy, silky one. Homemade stock that’s set up like gelatin is the exception; it can go in all at once because it melts gradually as you stir.
- Potatoes cook on their own: simmering them separately keeps their dice intact; if you cook them in the fish stock, the extra simmer time to get them tender will over-concentrate the stock and make the fish chowder recipe too salty.
- Fish is tender, not tough: it goes in last and needs only a few minutes in the hot chowder base to cook through, so it stays in chunks.
- A backup plan built in: no fish stock on hand? Clam broth cut with water works in a pinch.
Ingredients:

- Butter: the base of the roux. This is where the flavor starts; don’t sub in oil here.
- Onion, celery, and garlic: the aromatic base, sweated in the butter before the flour goes in.
- All-purpose flour: what makes this a real chowder instead of a cream soup. It cooks with the vegetables for a full minute so the raw-flour taste is gone before any liquid hits the pot.
- Dried thyme: one background herb, not a bouquet garni. Keeps the pot smelling like chowder, not vegetable soup.
- Kosher salt: I use Diamond Crystal, which is less salty by volume than Morton’s. If you’re using Morton’s, start with half the amount here and taste before adding more; kosher salt brands aren’t interchangeable cup for cup.
- Black pepper: freshly ground adds the best flavor.
- Dry white vermouth: goes in before the stock. This step gives the broth a savory backbone stock alone won’t build.
- Fish stock (or clam broth + water): the liquid the roux is built on. I use my homemade fish stock. No fish stock in the pantry? Clam broth cut with water gets you there.
- Yukon Gold potatoes: peeled and diced to ¾ inch before they hit the water. That size is what gets them fork-tender in a 10-minute simmer, and it means they’re already bite-sized by the time they go into the chowder.
- Tilapia: firm and mild, so it holds up as chunks in the chowda. It’s also affordable and stocked at most grocery stores.
- Heavy cream: stirred in at the end for the last layer of richness.
- Parsley: added right before serving, for color and freshness.
Step-by-step instructions:

1. Fill a small saucepan with cold water and heat over high heat. Bring it to a boil and add ½ teaspoon of salt. Stir in the diced potatoes. Reduce the heat to a low simmer and cook for 10 minutes, until tender. Melt the butter in a large Dutch oven over medium heat, then add the onion and celery. Sweat the vegetables until softened and slightly translucent, stirring occasionally; about 3-5 minutes.

2. Stir in the garlic and cook for one minute until fragrant, then add the flour, dried thyme, kosher salt and black pepper.

3. Use a wooden spoon to stir the flour mixture into the vegetables until they are well coated and there are no dry bits left. Add the dry vermouth and stir, cooking for a minute until the mixture is pasty.

4. Add the fish stock. If you’re using my homemade fish stock, it will be gelatinous and will likely slide out of the container in big clumps. That’s fine. It can go in all at once because it melts as you stir and gradually blends into the roux. Keep stirring until it’s smooth and creamy. If you’re using liquid stock or clam broth and water, stir it in a little at a time, adding more only once the previous amount is smooth.

5. Once the stock is well blended, increase the heat to medium-high and bring the fish chowder base to a bubbling simmer, stirring frequently to prevent sticking. The stock will begin to thicken.

6. Stir in the cooked potatoes.

7. Add the chunks of fish and stir. Simmer for a few minutes, until the fish is cooked through (2-3 minutes).

8. Stir in the heavy cream until blended and taste for seasonings. Adjust with salt and pepper as needed.

9. Add fresh parsley just before serving.
Pro-Tips:
- Hold back on the salt at first. Kosher salt brands aren’t interchangeable. Diamond Crystal (what this recipe was built on) is less salty by volume than Morton’s. If that’s what’s in your pantry, start with half the amount and taste before adding the rest.
- Don’t rush the roux step. A full minute of cooking the flour with the vegetables cooks off the raw-flour taste before any liquid goes in.
- Stir, don’t dump (liquid stock). If your stock is pourable, add it in stages, stirring until smooth before the next pour, to keep the base silky instead of clumpy. Gelled homemade stock can go in all at once; it melts gradually as you stir.
- Watch the fish once it’s in. It needs only enough time to heat through and turn opaque. Walk away, and it’ll go rubbery.
- No fish stock in the pantry? Clam broth cut with water is the closest swap and keeps the same briny backbone.

Mistakes to avoid:
- Adding the fish too early in the soup. To keep the seafood in definable chunks rather than flaking apart, add the fish at the last minute so it cooks through without falling apart.
- Avoid using oily fish such as salmon, tuna and mackerel, as their flavor can be overpowering.
- Avoid swapping cream for whole milk or half-and-half; The latter two can easily curdle in the chowder, whereas cream has enough fat to hold up against the heat.

Swaps and Variations:
- Want it smokier? Render a few strips of diced bacon or salt pork in the pot first, then use that fat (instead of or alongside the butter) to sweat the vegetables. Reserve the crisped bits and scatter them over each bowl as a garnish rather than stirring them back into the pot.
- Swap bottled clam juice for fish stock, but cut it with water as straight clam juice can be overpowering.
- Substituting another firm white fish (cod, haddock, halibut, snapper, grouper, sea bass or swordfish) works just as well.

FAQs
A chowder is built on a roux and thickened further with cream and potatoes, which gives it a thick, spoon-coating texture. A soup usually stays thinner and broth-based.
New England chowder is cream-based with no tomato. That’s the whole distinction from a Manhattan-style chowder, which is built on a tomato broth instead.
Yes. Clam broth cut with water gives you the same brininess if you don’t keep fish stock on hand.
This recipe uses tilapia, which is inexpensive and stocked at basically any grocery store, so there’s no special trip to a fish counter required. Any other firm white fish (cod, haddock, halibut, snapper, grouper, sea bass or swordfish) works the same way if that’s what’s local or on sale.
Yes, with a caveat: the potatoes can turn a little grainy, and the base can split after thawing. Both are fixable. Reheat gently, then whisk in a beurre manié (equal parts room-temperature butter and flour, mashed into a paste and stirred into the simmering chowder until it thickens and rebinds) along with an extra ⅓ to ½ cup of cream to smooth the texture back out.

Storage:
- Store leftovers in an airtight container in the fridge for 3 to 4 days.
Reheating:
- Reheat gently over low-medium heat on the stovetop, stirring occasionally. Avoid a hard boil, which can break the cream and toughen the fish.
Freezing:
- Freezes fine, with a caveat: the potatoes can turn a little grainy, and the base can split after thawing.
- Reheat gently on the stovetop, then whisk in a beurre manié (equal parts room-temperature butter and flour, mashed into a paste and stirred into the simmering chowder until it thickens and rebinds), plus an extra ⅓ to ½ cup of cream to restore the texture.

This is the fish chowder to make when the forecast turns cold, and dinner needs to actually stick to your ribs.
More seafood soups:
Fish Chowder Recipe
INGREDIENTS:
- 4 tablespoons butter
- ¾ cup onion (about half of a large onion)
- 2 stalks celery diced
- 2 cloves garlic minced
- 4 tablespoons all-purpose flour
- ½ teaspoon dried thyme
- 2-3 teaspoons kosher salt see note, plus ½ teaspoon for the potato water
- ¾ teaspoon black pepper
- 3 tablespoons dry white vermouth or ¼ cup dry white wine
- 1 quart fish stock or 2 cups of clam broth + 2 cups water
- 2 medium Yukon Gold potatoes peeled and diced (about 1½ cups)
- 1 pound firm white fish such as tilapia or cod, diced
- 1 cup heavy cream
- 1 tablespoon parsley chopped
DIRECTIONS:
- Heat a small saucepan of water over high heat, add ½ teaspoon of salt and bring to a boil. Add 2 medium Yukon Gold potatoes and cook for 10 minutes or until the potatoes are tender. Drain the water and set aside.
- In a large pot, melt 4 tablespoons butter over medium heat and add ¾ cup onion and 2 stalks celery. Sweat the vegetables until softened and translucent, about 3-5 minutes.
- Add 2 cloves garlic and cook until fragrant, about 1 minute. Sprinkle the vegetables with 4 tablespoons all-purpose flour, ½ teaspoon dried thyme, 2-3 teaspoons kosher salt and ¾ teaspoon black pepper and stir constantly until there are no dry bits left. Continue cooking and stirring for one minute.
- Stir in 3 tablespoons dry white vermouth and cook, stirring, until the mixture turns pasty. Add 1 quart fish stock. Homemade stock that has set up like gelatin can go in all at once; it melts as you stir and blends into the roux gradually. If you’re using liquid stock or clam broth and water, add it a little at a time, only adding more once the previous amount is fully blended and smooth.
- Keep stirring until all of the stock is incorporated and the base is smooth and creamy. Increase the heat to medium-high and continue stirring until the base comes to a bubbling simmer and starts to thicken.
- Add the cooked diced potatoes and 1 pound firm white fish, then simmer for 2-3 minutes, until the fish turns opaque and is cooked through.
- Finish by stirring in 1 cup heavy cream. Heat through and taste for seasonings. Adjust as necessary. Just before serving, stir in 1 tablespoon parsley for garnish.

