Quick Recipe Version (TL;DR)
Quick Ingredients
- 3 tbsp extra-virgin olive oil
- 1 fennel bulb (about 12 oz), thinly sliced; fronds reserved
- 1 large yellow onion, thinly sliced
- 6 garlic cloves, thinly sliced
- 2 tbsp tomato paste
- 1 cup dry white wine
- 4 cups low-sodium seafood/fish stock + 1 cup water
- 1 can (14.5 oz) crushed tomatoes
- 1 strip orange zest (about 3 by 1 inches), 2 bay leaves, 6 thyme sprigs
- 1/2 tsp saffron threads + pinch for rouille
- 1/4 tsp red pepper flakes, 2 tsp kosher salt (divided), 1/2 tsp black pepper
- 1.5 lb firm white fish (cod/halibut/monkfish), cut into 2-inch chunks
- 2 lb mussels, scrubbed and debearded
- 1 lb large shrimp, peeled and deveined (reserve shells)
- For rouille: 1 small boiled potato (4 oz), 1/3 cup mayonnaise, 2 garlic cloves, pinch saffron, 1/4 tsp cayenne, 1 tbsp lemon juice, 2–3 tbsp olive oil
- 1 baguette, sliced; 2 tbsp olive oil; 1 garlic clove for rubbing
Do This
- 1. Heat oven to 400°F. Clean mussels; peel and devein shrimp, reserving shells. Cube fish.
- 2. Warm 3 tbsp oil in a wide pot. Soften fennel and onion 8 minutes. Add garlic and tomato paste; cook 2 minutes. Add shrimp shells; cook 2 minutes.
- 3. Deglaze with wine; reduce by half, 3–4 minutes. Add stock, water, tomatoes, saffron, orange zest, thyme, bay, red pepper; simmer 20 minutes.
- 4. Strain out shells and herb stems. Season with 1.5 tsp salt and 1/2 tsp pepper; keep at a gentle simmer.
- 5. Rouille: Mash boiled potato with mayo, garlic, saffron (blooms in 1 tbsp hot water), lemon, cayenne; whisk in 2–3 tbsp oil and 2 tbsp hot broth to a thick, spreadable sauce.
- 6. Toast baguette slices 6–8 minutes; rub with cut garlic.
- 7. Poach seafood: Add mussels 3–4 minutes (until open). Add fish 3–5 minutes. Add shrimp 2–3 minutes. Serve with rouille toasts and fennel fronds.
Why You’ll Love This Recipe
- Classic Provençal flavors: saffron, fennel, tomato, and a whisper of orange for a transportive bowl.
- Restaurant-worthy yet weeknight-manageable in about 1 hour 15 minutes.
- Layered seafood cooking keeps fish tender, mussels juicy, and shrimp perfectly plump.
- Golden, garlicky rouille toasts add silky richness and a touch of heat to every bite.
Grocery List
- Produce: Fennel bulb, yellow onion, garlic, lemon, small waxy potato, fresh thyme, fresh parsley, orange (for zest)
- Dairy: None
- Pantry: Olive oil, tomato paste, crushed tomatoes, seafood/fish stock (low-sodium), dry white wine, saffron threads, bay leaves, red pepper flakes or Espelette, kosher salt, black pepper, baguette, mayonnaise
Full Ingredients
Broth Base
- 3 tbsp extra-virgin olive oil
- 1 medium fennel bulb (about 12 oz), cored and thinly sliced (reserve fronds for garnish)
- 1 large yellow onion, thinly sliced
- 6 garlic cloves, thinly sliced
- 2 tbsp tomato paste
- 1 cup dry white wine
- 4 cups low-sodium seafood or fish stock
- 1 cup water
- 1 can (14.5 oz) crushed tomatoes
- 1 strip orange zest (about 3 by 1 inches)
- 6 fresh thyme sprigs (or 1 tsp dried)
- 2 bay leaves
- 1/2 tsp saffron threads, lightly crumbled
- 1/4 tsp red pepper flakes or Espelette pepper
- 1.5 tsp kosher salt (for broth stage)
- 1/2 tsp freshly ground black pepper
Seafood
- 1.5 lb firm white fish (cod, halibut, monkfish, or hake), skinless, cut into 2-inch chunks
- 1 lb large shrimp (16/20), peeled and deveined; shells reserved for broth
- 2 lb mussels, scrubbed and debearded
- 1/2 tsp kosher salt (for seasoning seafood in the pot)
Rouille
- 1 small waxy potato (about 4 oz), peeled and boiled until tender, then cooled
- 1/3 cup mayonnaise
- 2 garlic cloves, finely grated or crushed
- 1/4 tsp saffron threads, bloomed in 1 tbsp hot water for 5 minutes
- 1/4 tsp cayenne pepper (or 1/2 tsp hot paprika)
- 1 tbsp fresh lemon juice
- 2–3 tbsp extra-virgin olive oil
- 1/4 tsp kosher salt
- 2 tbsp hot bouillabaisse broth (to thin)
Toasts & Garnish
- 1 baguette, cut into 16–20 thin slices
- 2 tbsp olive oil (for brushing)
- 1 garlic clove, halved (for rubbing toasts)
- 2 tbsp chopped flat-leaf parsley
- Reserved fennel fronds, chopped
- Extra-virgin olive oil, for drizzling

Step-by-Step Instructions
Step 1: Prep seafood and bloom saffron
Scrub mussels under cold water and remove beards. Discard any with cracked shells or that remain open after a firm tap. Peel and devein shrimp; reserve the shells. Cut the fish into 2-inch chunks and keep chilled. In a small cup, lightly crumble 1/2 tsp saffron and bloom it in 2 tbsp hot water; set aside.
Step 2: Build the aromatic base
In a wide Dutch oven or heavy pot, heat 3 tbsp olive oil over medium. Add fennel and onion with a pinch of the salt and cook, stirring, until softened and sweet, 8–10 minutes. Add sliced garlic; cook 1 minute. Stir in tomato paste and cook until rusty and fragrant, 2 minutes. Add reserved shrimp shells and cook, stirring, 2 minutes to extract flavor.
Step 3: Deglaze and build the broth
Pour in the white wine and simmer, scraping up any fond, until reduced by about half, 3–4 minutes. Add stock, water, crushed tomatoes, the bloomed saffron (and its liquid), orange zest strip, thyme, bay leaves, red pepper flakes, 1.5 tsp kosher salt, and 1/2 tsp black pepper. Bring to a gentle simmer.
Step 4: Simmer, strain, and season
Maintain a steady simmer (not a rolling boil) for 20 minutes to meld flavors. Remove and discard shrimp shells, thyme stems, bay leaves, and orange zest. Taste; adjust seasoning if needed (you will add another 1/2 tsp salt with the seafood stage). Keep the broth at a bare simmer.
Step 5: Make the rouille
In a bowl, mash the boiled potato until smooth. Whisk in mayonnaise, grated garlic, bloomed saffron (from the rouille ingredients), cayenne, lemon juice, and 1/4 tsp salt. Whisk in 2–3 tbsp olive oil for sheen and body. Thin with 2 tbsp hot bouillabaisse broth to a thick yet spreadable consistency. Cover and set aside.
Step 6: Toast the baguette
Heat the oven to 400°F. Arrange baguette slices on a sheet pan, brush lightly with 2 tbsp olive oil, and toast until crisp and golden at the edges, 6–8 minutes. Rub each warm toast lightly with the cut side of a halved garlic clove. Spread some rouille on a few toasts; set the rest alongside for the table.
Step 7: Poach seafood and serve
Bring the broth to a gentle simmer. Add mussels and 1/4 tsp of the remaining salt; cover and cook until most have opened, 3–4 minutes. Add fish; simmer uncovered until it turns opaque and just flakes, 3–5 minutes. Add shrimp and the final 1/4 tsp salt; cook until pink and just firm, 2–3 minutes. Discard any mussels that did not open. Ladle the bouillabaisse into warm bowls, making sure each has fish, mussels, and shrimp. Garnish with parsley and chopped fennel fronds, and finish with a drizzle of olive oil. Serve immediately with rouille toasts.
Pro Tips
- Use a wide pot so seafood cooks in a shallow layer; this keeps delicate fish from breaking.
- Reserve shrimp shells for the broth—they act like instant stock boosters.
- Keep the broth at a gentle simmer when adding seafood; boiling can toughen shrimp and break fish.
- Salt lightly before adding shellfish, then adjust at the end—mussels release briny liquid.
- Warm soup bowls in a low oven for 5 minutes so the seafood stays hot at the table.
Variations
- Classic Marseille Touch: Add 1–2 tbsp pastis with the wine and use a mix of firm Mediterranean-style fish. Keep the orange zest—it is traditional.
- Spicier Rouille: Swap cayenne for 1 tsp harissa paste for a smoky kick and deeper red color.
- Gluten-Free: Serve with gluten-free baguette or omit toasts and dollop rouille directly into the bowls.
Storage & Make-Ahead
The broth base (through Step 4) can be made up to 2 days ahead and refrigerated, or frozen for up to 3 months. Rouille keeps 2–3 days refrigerated. Cook the seafood right before serving for best texture. Leftover bouillabaisse with seafood can be refrigerated up to 1 day; reheat gently until hot (about 160°F) without boiling. Discard any leftover mussels that were unopened after cooking.
Nutrition (per serving)
Approximate values (including rouille toasts): 520 calories; 46 g protein; 29 g carbohydrates; 22 g fat; 3 g fiber; 1100 mg sodium.


Leave a Reply