Main Courses
This fish rice porridge recipe transforms simple ingredients into a comforting bowl of Vietnamese cháo cá—creamy, fragrant, and brimming with tender fish and aromatic ginger. The secret lies in slow-simmered rice and delicate fish fillets that melt into the broth, creating a texture that’s both silky and satisfying.
I perfected this version after years of testing, balancing traditional techniques with modern convenience for home cooks.
The dish begins with a rich broth infused with ginger, scallions, and fish stock, where jasmine rice gently breaks down into a velvety consistency. Thin slices of white fish—like cod or snapper—are poached directly in the pot, absorbing the broth’s flavors while remaining flaky.
What makes this recipe special is how the fish integrates seamlessly into the porridge, offering a light yet protein-rich meal that’s adaptable for any season.
By the time you finish, you’ll have a bowl that’s golden, fragrant, and deeply comforting—each spoonful offering a perfect harmony of tender rice, melt-in-your-mouth fish, and bright ginger notes.
This is the kind of dish that feels like a hug in a bowl, perfect for chilly evenings or when you crave something nourishing yet simple. The best part? It’s easier than it looks.
While traditional Vietnamese cháo cá often includes shrimp or pork, this version keeps it seafood-forward, making it ideal for those who prefer lighter flavors. You can also adjust the spice level with a touch of chili or lime for a brighter finish. Let’s get started—your taste buds will thank you.
Ingredients for fish rice porridge
Simple ingredients, extraordinary comfort—this porridge brings Vietnamese warmth to your kitchen.
| Ingredient | Amount | Notes |
|---|---|---|
| Jasmine Rice 🍚 | 1 cup | Uncooked, long-grain preferred |
| White Fish Fillets 🐟 | 1 lb | Cod or snapper, skinless |
| Fresh Ginger Root 🧄 | 2 tbsp | Finely grated, aromatic |
| Scallions 🧅 | ¼ cup | Thinly sliced, green parts included |
| Fish Stock 💧 | 4 cups | Homemade or high-quality store-bought |
| Green Onions 🧅 | 2 whole | Thinly sliced, for garnish |
| Lime Wedges 🍋 | 2 whole | Fresh, for serving |
| Soy Sauce 🥢 | 1 tbsp | Light or dark, for seasoning |
| Vegetable Oil 🫒 | 1 tbsp | Neutral flavor, for cooking |
| Salt 🧂 | 1 tsp | Kosher or sea salt |
| White Pepper 🌶️ | ½ tsp | Ground, for subtle heat |
| Chili Oil 🔥 | 1 tbsp | Optional, for spicy finish |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
The fish is the star here, so pick cod or snapper—they stay tender and flaky when poached. Most grocery stores carry these fillets, but if you're feeling adventurous, hit the seafood counter at Whole Foods or your local fishmonger for the freshest catch. The ginger should be bright yellow and firm, not wrinkled or moldy. For the fish stock, homemade is ideal, but brands like Pacific Foods or Kikkoman make reliable store-bought options. Jasmine rice is a must—it breaks down beautifully into that signature silky texture, and Lotus Foods or Thai Kitchen carry it in most stores. If you can't find jasmine, long-grain white rice works in a pinch, though the flavor won't be quite the same.
No cod or snapper? Hake or halibut are excellent substitutes—they hold up well to poaching. Running low on fish stock? Shrimp or vegetable stock will work, but add a splash of soy sauce to mimic the umami depth. Fresh ginger too fibrous? Powdered ginger at half the amount gets you close, though it lacks that bright zing. The scallions and green onions are interchangeable—use whatever’s freshest in your fridge. For the chili oil, Sriracha mixed with neutral oil is a quick fix, but traditional Vietnamese chili oil (like Thai Kitchen) adds that perfect smoky kick. And if you're feeling bold, a squeeze of lime juice brightens everything up instantly.
This porridge tastes even better the next day—it’s one of those dishes that improves with time. Store leftovers in an airtight container in the fridge for up to 5 days, or freeze portions for 3 months. To reheat, gently warm on the stove with a splash of water or stock—never microwave, or it’ll turn gummy. Garnishes like cilantro and lime should be added fresh right before serving, so they stay vibrant. Double the batch and freeze half—it’s the perfect lazy morning meal or light dinner. Trust me, your freezer will thank you later.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this recipe because it’s literally one pot, one spoon, and done. No chopping boards full of scraps—just rice, fish, and stock simmering together until it’s creamy and fragrant. The fish stock does all the work while I stir, and honestly? That’s my kind of cooking.
- Ginger-Fish Umami Bomb: Between us, the ginger and fish stock combo is dangerously good. The ginger adds a bright, zesty kick that cuts through the richness of the fish, while the stock keeps it deeply savory. It’s the kind of flavor that makes you pause mid-bite—even my picky husband stops scrolling to eat more.
- Lazy Meal Prep Win: This porridge reheats like a dream, so I make a big batch on Sundays and portion it for the week. Cold or warm, it’s perfect for lunches—just add a sprinkle of scallions and a squeeze of lime. (Yes, even on a Tuesday night when I’ve got zero energy.)
- Budget-Friendly Comfort: Fish fillets stretch further than you’d think when simmered in stock, and jasmine rice is a pantry staple. Leftovers? Even better—it tastes richer the next day. I’ll be real: this is my go-to when I need a filling, cheap meal that still feels special.
Step-by-step instructions for Vietnamese fish rice porridge
Here's the method that transforms simple ingredients into a velvety, aromatic porridge with perfectly integrated fish.
Prepare the Fish and Aromatics
Begin by slicing the 1 lb white fish fillets into ½-inch cubes, removing any bones. In a small bowl, combine the 2 tbsp finely grated fresh ginger root, 1 tbsp soy sauce, and ½ tsp white pepper. Add the fish cubes and toss gently to coat evenly. Let this marinate for 15 minutes at room temperature—this ensures the fish absorbs the fragrant flavors while remaining tender.
While the fish marinates, thinly slice the 2 whole green onions and 0.25 cup scallions, setting them aside for later. The green onions should be cut into ¼-inch rings for garnish, while the scallions can remain whole or cut into 1-inch pieces for texture. Here's the thing—freshness matters most with these aromatics, so use them within a day of cutting for optimal flavor.
Cook the Jasmine Rice into Porridge
In a heavy-bottomed pot (a Dutch oven works beautifully), heat 1 tbsp vegetable oil over medium-low heat. Add the marinated fish and cook for 2-3 minutes until just opaque—you're not searing, just warming through. Remove the fish and set aside temporarily.
In the same pot, add the 1 cup jasmine rice and toast gently for 1 minute, stirring constantly, until fragrant. This step develops the rice's natural sweetness and prevents a raw taste in the final porridge. Immediately pour in the 4 cups fish stock, bringing the mixture to a gentle simmer. Here's where patience pays off—reduce heat to low and let it cook uncovered for 45-50 minutes, stirring occasionally with a wooden spoon to prevent sticking.
Finish the Porridge with Texture and Flavor
After 45 minutes, the porridge should be thick and creamy, with the rice completely tender. Stir in the reserved fish and cook for an additional 5 minutes to heat through. The fish should flake easily when prodded with a spoon—this indicates perfect doneness. If the porridge is too thick, add 1-2 tablespoons hot water to reach your desired consistency.
Remove from heat and stir in the 1 tsp salt and 1 tbsp chili oil, letting the heat from the porridge gently infuse the flavors. Taste and adjust seasoning—you want a balance of umami from the fish stock, brightness from the ginger, and just a whisper of heat from the chili oil. The porridge should be silky, with the fish melting into the rice rather than remaining distinct pieces.
Serve with Fresh Garnishes
Ladle the porridge into 4 shallow bowls, dividing evenly. Top each serving with 2 thin green onion rings, 1 tbsp chopped fresh cilantro, and a lime wedge. The acidity of the lime brightens the rich porridge, while the cilantro adds a fresh herbal note. Serve immediately while warm—this dish is best enjoyed fresh from the pot, when the aromas are most vibrant.
Here's the moment that matters: the first spoonful should deliver a harmonious blend of creamy rice, delicate fish, and aromatic ginger, with just a hint of spice from the chili oil. The texture should be luxurious—each bite should feel like melting velvet. Don't skip the lime; its acidity cuts through the richness and awakens your palate with every bite.
Pro Tips For Making Fish Rice Porridge
- Rinse Rice Twice: I learned this the hard way—Jasmine rice clumps like glue if you don’t rinse it properly. Swirl it in cold water, drain, repeat. The goal? No starchy residue clinging to your fish or porridge. Trust me, your texture will thank you.
- Poach Fish Last: If you add fish fillets too early, they’ll turn to mush in the broth. Wait until the rice is 80% cooked, then gently slide them in—just 3-4 minutes max. You want them flaky, not falling apart.
- Ginger Slice Thin: Skip the big chunks. Thinly slice ginger (1-2mm) so it infuses the stock without overpowering. Too thick? You’ll taste it like a mouthwash. Too thin? It dissolves into nothing.
- Salt the Stock Early: Season the fish stock right at the start—before adding rice or ginger. Flavor builds over time, and adding salt later just makes the porridge taste flat. (Yes, even if you’re impatient like me.)
Storing and reheating this recipe
Refrigerator Storage
Your fish rice porridge tastes even better the next day, so store leftovers in an airtight container in the fridge for up to 5 days. The flavors meld beautifully overnight, deepening the umami from the fish stock and the brightness of the ginger.
I always double the batch—one for dinner and one for breakfast the next morning. Just be sure to press plastic wrap directly onto the surface before sealing to prevent a skin from forming. 💡
Freezer Prep Tips
For longer storage, freeze portions in single-serving containers or silicone molds for easy reheating. Portion into 1-cup servings and freeze flat for efficient stacking. Label with the date—this porridge keeps its quality for 3 months in the freezer.
The texture remains creamy when reheated properly, though it may lose some of its initial silky mouthfeel. 🧊
Stovetop Reheating
This is my preferred method because it restores the porridge’s creamy texture perfectly. Transfer portions to a lightly oiled pot and warm over low heat, stirring frequently with a wooden spoon. Add 1-2 tablespoons of water or fish stock if it looks too thick—this prevents drying out.
The porridge is ready when it reaches 165°F internal temperature, about 5-7 minutes of gentle heating. Stir in fresh cilantro and lime juice just before serving to revive the flavors. 🔥
Microwave Shortcuts
For quick reheating, transfer a single serving to a microwave-safe bowl and cover loosely with a damp paper towel. Heat on medium power (50%) for 1-2 minutes, stirring halfway. The damp towel prevents drying, but expect a slightly firmer texture than stovetop reheating.
Finish with a squeeze of lime and a sprinkle of chili oil to brighten the dish. This method works best for lunch or when you’re in a hurry. ⏱️
Reviving Texture
If your reheated porridge turns out too thick, thin it with warm fish stock or water—just 1 tablespoon at a time—while stirring constantly. For extra richness, stir in ½ teaspoon butter or a splash of soy sauce to restore depth.
The key is patience: let it heat through gradually to avoid breaking the fish’s delicate texture. A well-reheated bowl should still feel luxuriously creamy, just like the first serving. 💛
Garnish Refresh
Never skip the fresh garnishes when reheating! Add cilantro, green onions, and lime wedges right before eating to cut through any richness and wake up your taste buds. For an extra boost, drizzle with chili oil or a pinch of white pepper—these finishing touches make all the difference.
The contrast of fresh herbs and citrus against the warm porridge is what makes this dish truly special. 🌿
Nutrition facts
Frequently asked questions
Can I use any fish for this porridge?
White, flaky fish work best—cod, snapper, or halibut are ideal. Avoid oily fish like salmon or mackerel, as they can make the porridge greasy. For a vegetarian version, swap fish for soft tofu or mushrooms, but the texture won't be identical.
Why does my porridge turn out too thick?
Overcooking or insufficient liquid causes thickness. Stir in 1-2 tablespoons of hot water or stock while reheating to adjust consistency. For future batches, use 4.5 cups of stock instead of 4 to ensure a lighter texture.
How do I make this dish gluten-free?
Check your fish stock for gluten additives—opt for certified gluten-free brands. Use tamari instead of soy sauce, and ensure all garnishes (like chili oil) are gluten-free. The base recipe is naturally gluten-free with these swaps.
Can I prepare this ahead for meal prep?
Yes! Cook the porridge fully, then refrigerate for up to 5 days or freeze for 3 months. Reheat gently on the stove with extra stock to restore creaminess. Garnish fresh before serving to keep flavors vibrant.
What if I don't have fresh ginger?
Use 1 tbsp powdered ginger (reduce to half the amount) or a pinch of ground ginger. For best results, combine with a splash of lime juice to mimic fresh ginger's brightness.
