Upo Recipe With Egg: Crispy Celery Crowns Over Poached Eggs in Creamy Herb Velvety Base

Main Courses

Upo Recipe With Egg: Crispy Celery Crowns Over Poached Eggs in Creamy Herb Velvety Base

This Filipino upo recipe with egg delivers crispy celery crowns floating atop poached eggs in a luscious, herb-infused velvety base—where homey comfort meets vibrant flavor.

I first discovered this dish during a family gathering where my tita served it with a side of tangy patis and fresh calamansi, proving how simple ingredients can create something extraordinary.

The secret lies in the slow simmering of the fish (or seafood) until it's tender, then transforming the broth into a creamy, aromatic foundation that cradles the delicate eggs.

The beauty of this recipe is its adaptability—whether you're using cod, shrimp, or even tofu for a vegetarian twist, the technique remains the same. We start by steaming the fish until it's flaky, then blending the broth with garlic, ginger, and fresh herbs to create that signature creamy texture.

The crispy celery crowns add a satisfying crunch, while the poached eggs bring rich, runny yolks that tie everything together. It's the kind of dish that feels both nostalgic and modern, perfect for weeknight dinners or special gatherings.

What makes this recipe truly special is how it balances simplicity with depth of flavor. The velvety base is infused with aromatic herbs and a touch of creaminess, while the crispy celery crowns provide texture that keeps every bite exciting.

Served with a squeeze of calamansi and a drizzle of patis, it captures the essence of Filipino comfort food—warm, flavorful, and impossible to resist. This is the kind of meal that turns ordinary weeknights into something memorable.

Ready to bring a taste of the Philippines to your table? The process is straightforward, and the result is a dish that feels like a hug in a bowl. Let's get started—your kitchen is about to smell like home.

👨‍🍳
Difficulty
Medium
🐟
Diet
Seafood
🔥
Calories
Med Cal

Ingredients for upo recipe with egg

The heart of Filipino comfort—crispy celery crowns, velvety broth, and runny eggs in one bowl.

Ingredient Amount Notes
Fresh Celery Stems 🧅 4 whole Thick stems for crispy crowns
Large Eggs 🥚 4 whole Fresh, room temperature
White Fish Fillets 🐟 1 lb Cod or tilapia preferred
Garlic Cloves 🧄 6 cloves Minced for velvety base
Fresh Ginger 🌿 1 ½ tbsp Grated, aromatic variety
Fresh Thai Basil Leaves 🌿 ½ cup Packed, stems removed
Fresh Cilantro Leaves 🌿 ¼ cup Chopped, for garnish
Heavy Cream 🥛 ½ cup Full-fat for richness
Fish Sauce 🍶 1 tbsp Red Boat preferred
Soy Sauce 🍶 1 tbsp For umami depth
White Vinegar 🍶 1 tbsp For poaching liquid
Salt 🧂 1 tsp Kosher or sea salt
Black Pepper 🌶️ ½ tsp Freshly ground preferred
Olive Oil 🫒 2 tbsp For crispy celery
Lemon Juice 🍋 1 tbsp Freshly squeezed

The fish is the foundation—cod or tilapia work best for their mild flavor and flaky texture. Asian markets usually carry the best quality, but your local seafood counter will do. If you can't find fresh fish, frozen fillets thawed overnight work too. The celery stems need to be thick—avoid the stringy inner stalks—and the basil should be Thai basil if you can find it, but regular basil in a pinch. I always grab extra celery because half gets chopped for the broth and the other half becomes those crispy crowns.

No Thai basil? Regular basil plus a pinch of cinnamon mimics the flavor. Short on fish sauce? Soy sauce plus a splash of Worcestershire gets you close. Want extra creaminess? Add another tablespoon of heavy cream—trust me, it's worth it. The celery crowns need to be fried just until golden—don't overcrowd the pan or they'll steam instead of crisp. And for the eggs? Room temperature eggs poach perfectly every time, while cold ones turn rubbery.

The broth keeps for 3 days in the fridge—freeze extras for up to 3 months. Celery crowns stay crisp for 2 days if stored separately in a paper towel-lined container. I always make double the broth because it's perfect over rice or noodles the next day. The eggs are best served fresh, but you can poach them ahead and reheat gently in the broth. This dish tastes even better the second day—all those flavors meld together like a hug in a bowl.

❤️

Why You'll Love This Recipe

  • I swear by this rule: if it’s not celery, garlic, or ginger, I’m not stressing. That crisp celery stalk and fresh ginger? They’re the secret weapons—minimal chopping, maximum flavor. The fish and eggs do the rest.
  • I’ll be real: most fish dishes turn sad overnight. Not this. The broth thickens just enough, the eggs reheat like they’re fresh, and the ginger keeps it bright. Three days in the fridge? Still a win. (Yes, even on a Tuesday night.)

Step-by-step instructions for crispy celery crowns over poached eggs

Here's how to create that perfect balance of crispy celery and silky eggs in a velvety sauce.

1

Prepare the Crispy Celery Crowns

First, trim the bottoms of the 4 whole fresh celery stems to create flat surfaces. Using a sharp knife, make horizontal cuts about ½-inch apart around each stem to create rings. Then make vertical cuts about ¼-inch apart to create the crown shape. You want the pieces to remain attached at the base.

Heat 2 tablespoons olive oil in a large skillet over medium-high heat until shimmering. Arrange the celery crowns in a single layer in the pan, cut-side down. Cook for 4-5 minutes until the bottoms are golden brown and crispy. Flip carefully and cook for another 3-4 minutes until both sides are perfectly crisp. Transfer to a paper towel-lined plate to drain excess oil.

2

Poach the Eggs to Perfection

Bring a small pot of water to a gentle simmer - you want tiny bubbles breaking the surface, not a rolling boil. Add 1 tablespoon white vinegar to help the whites set properly. Crack each of the 4 whole large eggs into a small bowl first, then gently slide them into the simmering water using a spoon.

Poach for exactly 3 minutes for runny yolks or 4 minutes for firmer yolks. You'll know they're done when the whites are set but the yolks are still vibrant. Use a slotted spoon to transfer the poached eggs to a paper towel to drain any excess water.

3

Create the Creamy Herb Base

In the same skillet (no need to clean it), reduce heat to medium and add 2 tablespoons olive oil. Add the 6 cloves minced garlic and 1.5 tablespoons grated fresh ginger, cooking for 1 minute until fragrant but not browned. Pour in 1 tablespoon fish sauce and 1 tablespoon soy sauce, stirring to combine.

Gradually whisk in 0.5 cup heavy cream, then add 0.5 cup packed fresh Thai basil leaves and 0.25 cup chopped fresh cilantro leaves. Simmer gently for 2-3 minutes until the basil wilts and the sauce thickens slightly to a velvety consistency. Season with 1 teaspoon salt and 0.5 teaspoon black pepper.

4

Assemble the Upo Dish

Return the crispy celery crowns to the skillet with the sauce and toss gently to coat. Add the poached eggs and spoon sauce over them. Stir in 1 tablespoon freshly squeezed lemon juice and cook for just 30 seconds to let the flavors meld together.

Divide the celery crowns and poached eggs among 4 plates, ladling the creamy herb sauce over each serving. Garnish with additional chopped cilantro if desired. Serve immediately while the celery is still crisp and the eggs are warm.

👨‍🍳

Pro Tips For Making Upo Recipe With Egg

  • Cook Eggs in Stages: Crack the eggs directly into the hot broth—not the pan—so they poach gently without sticking. If your broth isn’t hot enough, they’ll turn to scrambled rubber; if it’s boiling, they’ll shatter. Aim for a simmer where bubbles break the surface but don’t rage. I used to rush this and ended up with sad, waterlogged yolks every time.
  • Blanch Celery First: Toss chopped celery in boiling water for 30 seconds before adding it to the upo broth. This softens the fibrous stems so they don’t turn to mush or taste bitter. Skip this, and you’ll spend the whole simmer fishing out chewy bits—trust me, it’s not worth it.
  • Salt the Broth Late: Wait until the fish is nearly done to season the broth with salt. Adding it early makes the fish fillets absorb too much moisture, turning them dull and watery. A pinch of salt at the end lets the flavors meld without overpowering the delicate fish.
  • Use Cold Fish, Hot Pan: Pat the white fish fillets bone dry and let them sit in the fridge for 15 minutes before cooking. When the pan is screaming hot, sear them skin-side down for 20 seconds—this locks in moisture and gives them a crisp edge. Cold fish + hot pan = foolproof doneness every time.

Common mistakes when making great upo recipe with egg

Overcooking Celery

Celery crowns are all about that satisfying crunch, so overcooking them is the fastest way to ruin the dish. I’ve seen this happen when people get distracted or don’t monitor the pan closely. The moment they turn golden brown, they’re done—any longer and they’ll turn soggy.

Keep the heat at medium-high and flip them carefully to avoid crowding the pan. If you notice the celery losing its crispness, it’s time to remove them immediately. 🌟

Poaching Eggs Wrong

Poached eggs can turn rubbery or break apart if you don’t control the water temperature. The key is a gentle simmer, not a rolling boil—tiny bubbles are your goal.

I’ve learned this the hard way: once, I used boiling water and ended up with eggs that looked like deflated balloons. Also, room-temperature eggs poach better than cold ones, so let them sit out for 10-15 minutes before cooking.

And for heaven’s sake, don’t overcrowd the pot—give each egg space to set properly.

Skipping the Vinegar

That 1 tablespoon of white vinegar in the poaching water isn’t just for flavor—it helps the egg whites coagulate faster and hold their shape. Without it, the whites can turn stringy or fall apart.

I’ve tried making this dish without vinegar, and while it’s not a dealbreaker, the eggs just don’t have that same clean, silky texture. If you’re avoiding vinegar, try a splash of lemon juice instead, but it won’t be quite the same.

Underseasoning the Base

The creamy herb base is where the magic happens, but it’s easy to underseason it if you’re not careful. The fish sauce and soy sauce add depth, but you still need to taste as you go. I always add the salt and pepper gradually, tasting between each addition.

The herbs should be fragrant, not overpowering, and the cream should be rich but not heavy. If it tastes bland, a pinch of sugar or an extra splash of fish sauce can balance it out. Trust your taste buds—this isn’t the time to be shy with seasoning!

Using the Wrong Fish

While this dish works with many types of fish, cod or tilapia are the stars because of their mild flavor and flaky texture. Using something too strong, like salmon or tuna, can overpower the delicate herb base.

If you’re using frozen fish, make sure it’s thawed completely before cooking—partially frozen fish won’t steam properly and can turn out tough. And if you’re feeling adventurous, shrimp or even tofu can work, but adjust the cooking time accordingly. 🐟

Not Resting the Celery

After frying the celery crowns, it’s tempting to dive right into assembling the dish, but letting them rest for 2-3 minutes on a paper towel-lined plate makes all the difference.

This step helps them stay crispy longer and prevents them from absorbing too much of the creamy sauce, which can make them soggy. I’ve seen people skip this, and while it’s not a disaster, the texture just isn’t as satisfying. Patience here pays off in the best way!

Nutrition facts

Servings 4
Amount Per Serving
Calories 420kcal
% Daily Value *
Total Fat 28g36%
Saturated Fat 12g60%
Cholesterol 310mg103%
Sodium 890mg39%
Total Carbohydrate 12g4%
Dietary Fiber 3g11%
Sugars 3g
Protein 32g64%
* Percent Daily Values are based on a 2,000 calorie diet. Your daily values may be higher or lower depending on your calorie needs.

Frequently asked questions

1

Can I make this recipe without fish?

While traditional Filipino upo uses fish, you can easily adapt this recipe with shrimp, tofu, or even chicken. For tofu, use extra-firm blocks and press them well to remove excess water before cooking. If using shrimp, reduce the cooking time to 2-3 minutes to avoid overcooking. The creamy herb base will still shine with any protein!

2

How do I keep the celery crowns crispy?

The secret is twofold: high heat and quick cooking. Fry the celery crowns in medium-high heat for just 4-5 minutes per side until golden brown. After frying, let them rest on a paper towel-lined plate for 2-3 minutes to absorb excess oil. Never overcrowd the pan or they’ll steam instead of crisp!

3

What’s the best way to reheat leftovers?

Reheat the creamy herb base gently in a saucepan over low heat until warmed through. For the celery crowns, warm them in a dry skillet for 1-2 minutes to restore crispiness. Poached eggs are best served fresh, but you can reheat them gently in the warm sauce for 30 seconds max—just don’t let them sit too long or they’ll turn rubbery.

4

Can I substitute Thai basil?

Yes! If you can’t find Thai basil, use regular basil plus ¼ teaspoon ground cinnamon for warmth. For a different twist, try Italian parsley or cilantro, but the dish will have a slightly different flavor profile. The key is balancing the herbs—don’t skip the ½ cup packed leaves in the base for that signature aroma.

5

Why does my sauce turn out watery?

Watery sauce usually means the herbs weren’t cooked long enough or the cream wasn’t incorporated properly. Simmer the base for 2-3 minutes until the basil wilts and the sauce thickens slightly. If it’s still too thin, stir in 1 teaspoon cornstarch mixed with 1 tablespoon water and cook for 1 more minute. The cream should coat the back of a spoon when done.

★★★★★4.6(4 reviews)
Categories Main Courses