Soups & Stews
This beef arroz caldo recipe delivers the ultimate Filipino comfort dish—creamy coconut broth infused with tender beef and fluffy rice, all simmered to perfection. 💛 The secret lies in slow-cooked beef that practically melts in your mouth, balanced by the rich, velvety texture of coconut milk and aromatic ginger-garlic infusion.
I've perfected this recipe to capture the soul-warming essence of home-cooked arroz caldo, where every spoonful feels like a hug in bowl form.
The beauty of this dish is in its layers of flavor—tender beef bites, fragrant rice, and a luscious broth that's both creamy and comforting. Unlike many versions that rush the process, I emphasize slow simmering to develop deep, savory notes while keeping the rice perfectly tender.
This isn't just a soup; it's a complete meal that brings warmth to any table, especially on chilly evenings or when you crave something hearty yet comforting.
What makes this recipe stand out is the balance of traditional techniques with modern convenience. The beef is braised until fork-tender, while the rice absorbs the rich coconut broth without turning mushy. The result?
A bowl of creamy, aromatic arroz caldo where each component—beef, rice, and broth—works in perfect harmony. Whether you're serving a family gathering or simply treating yourself, this dish delivers restaurant-quality comfort at home.
The best part? This recipe scales beautifully for leftovers, making it ideal for meal prep. The flavors only deepen as it sits, so the second day is often even better. Here's how to create this tender, creamy masterpiece that will become your new go-to comfort dish.
Ingredients for beef arroz caldo
Sixteen ingredients transform into the ultimate Filipino comfort bowl—creamy, tender, and bursting with coconut warmth.
| Ingredient | Amount | Notes |
|---|---|---|
| Beef Chuck Roast 🥩 | 2 ½ lb | Cut into 1.5-inch cubes, marbled fat preferred |
| Jasmine Rice 🍚 | 2 cups | Uncooked, long-grain preferred |
| Coconut Milk 🥥 | 2 cans | Full-fat, 13.5 oz each, Thai Kitchen brand |
| Beef Broth 💧 | 6 cups | Homemade or high-quality low-sodium |
| Ginger Root 🌿 | 3 tbsp | Freshly grated, aromatic variety |
| Garlic Cloves 🧄 | 8 cloves | Peeled, lightly crushed |
| Onion 🧅 | 1 whole | Yellow, medium-sized, chopped |
| Tomatoes 🍅 | 2 whole | Medium, ripe, diced |
| Bay Leaves 🍃 | 2 whole | Dried, crushed between fingers |
| Salt 🧂 | 1 ½ tsp | Diamond Crystal kosher salt |
| Black Peppercorns 🌶️ | 1 tsp | Freshly cracked |
| Fish Sauce 🐟 | 1 tbsp | Red Boat brand, umami depth |
| Sugar 🍚 | 1 tbsp | White granulated, balances flavors |
| Green Onions 🧅 | ¼ cup | Thinly sliced, for garnish |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
The beef is non-negotiable here—chuck roast with visible marbling delivers that melt-in-your-mouth texture. Costco sells it pre-cubed for convenience, but if you're buying whole, ask your butcher to cut it into 1.5-inch pieces. The fat renders beautifully during slow cooking, enriching the broth. For the coconut milk, Thai Kitchen3000 cans are my go-to—they're affordable and consistently creamy. Jasmine rice is essential; its delicate aroma pairs perfectly with the coconut's richness. If you can't find it, basmati is a decent substitute, but the texture won't be identical.
No fish sauce? Soy sauce at half the amount works in a pinch, though it won't capture that same umami depth. Fresh ginger and garlic are ideal, but if you're using powdered, reduce to one-third the amount. The tomatoes can be swapped for 1 cup of tomato sauce if you're short on time. For the broth, homemade is best, but low-sodium store-bought works if you dilute it with water. The sugar balances the acidity—don't skip it, even if you're not sweet-toothed. Pro tip: Toast the rice in oil for 2 minutes before adding liquid to prevent mushiness.
This dish tastes even better the next day as the flavors meld. Store leftovers in the fridge for up to 4 days or freeze for 3 months. I always double the batch—it's perfect for meal prep. The broth thickens as it cools, so add a splash of water when reheating. Garnish with green onions and cilantro right before serving; they add a bright contrast to the creamy broth. For extra richness, stir in a spoonful of coconut milk when reheating.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this—just toss everything in one pot, simmer, and walk away. The beef chuck roast practically melts into tender perfection while the rice soaks up that rich broth, and honestly? No extra pots to wash.
- Rich Without Effort: That first sip of ginger-infused beef broth with coconut milk swirling in? Pure satisfaction. The slow-cooked beef has this melt-in-your-mouth texture, and the jasmine rice soaks up all the creamy, spiced goodness—no fancy techniques, just deep flavor.
- Leftover Goldmine: Between us, this dish only gets better the next day. The flavors meld overnight, and reheating it is a breeze—just a splash of water, a quick stir, and you’ve got a comforting bowl ready in minutes. My freezer’s always stocked with portions.
- Budget-Friendly Feast: A chuck roast stretches for days, and the rest of the ingredients are pantry staples. I’ve fed my whole family (plus leftovers) for under $20—creamy, hearty, and way more impressive than takeout. No guilt, just good food.
Step-by-step instructions for beef arroz caldo
Here's how to create this rich, aromatic dish with melt-in-your-mouth beef and fragrant coconut-infused rice.
🔥 Step 1: Sear the Beef for Maximum Flavor
Heat a Dutch oven over medium-high heat until it's smoking hot. Add the 2.5 lb Beef Chuck Roast cut into 1.5-inch cubes in a single layer, leaving space between pieces. Let them sear undisturbed for 3-4 minutes until a deep golden-brown crust forms.
This initial sear locks in juices and builds that essential Maillard crust that forms the flavor foundation. I press down gently on the beef cubes during the first minute to prevent them from curling and ensure even contact with the pan. Once browned on one side, turn the cubes and repeat until all sides are beautifully caramelized. Remove the beef and set aside—it'll finish cooking later.
🍳 Step 2: Build the Aromatic Base
In the same Dutch oven, add 2 tablespoons olive oil (not in ingredients but essential for cooking) and reduce heat to medium. Add the 1 whole Onion chopped into ½-inch pieces and cook for 5 minutes until softened and translucent. Add the 8 cloves Garlic Cloves and 3 tbsp Ginger Root, cooking for another 1 minute until fragrant.
Here's where the magic happens: add the 2 whole Tomatoes diced and cook for 3 minutes until they break down into a chunky sauce. Stir in the 2 whole Bay Leaves (crushed between your fingers) and the 1.5 tsp Salt and 1 tsp Black Peppercorns. This aromatic blend will infuse the entire dish with depth. Don't rush this step—the flavors need time to meld.
🥘 Step 3: Simmer the Beef in Broth
Return the seared beef to the Dutch oven. Pour in 6 cups Beef Broth and bring to a gentle boil. Once boiling, reduce heat to low and add the 2 cans Coconut Milk. Stir well to combine, then add the 1 tbsp Fish Sauce and 1 tbsp Sugar. Cover and simmer for 1 hour until the beef is fork-tender and easily pulls apart.
I check for doneness by piercing a beef cube with a fork—it should slide in easily with just slight resistance. If the broth reduces too quickly, add ½ cup water to maintain the right consistency. The coconut milk will create a velvety texture while the broth keeps everything flavorful. This long simmer is crucial for tenderizing the tough chuck roast.
🍳 Step 4: Cook the Jasmine Rice
While the beef simmers, rinse the 2 cups Jasmine Rice under cold water until the water runs clear. This removes excess starch that would make the rice mushy. In a separate pot, bring 4 cups water to a boil, add the rice, then reduce heat to low and cover tightly. Cook for 15 minutes without lifting the lid, then remove from heat and let it steam for 10 minutes.
I use a tight-fitting lid to trap steam, which is essential for fluffy jasmine rice. The rice should be tender but still have a slight bite—it'll finish cooking when combined with the beef mixture. Don't peek during cooking or you'll release steam and get uneven results. Fluff the rice gently with a fork before combining with the beef.
🥘 Step 5: Combine and Finish
Carefully transfer the cooked rice to the Dutch oven with the beef mixture. Stir gently to combine, then add the 0.25 cup Green Onions and 0.25 cup Fresh Cilantro. Taste and adjust seasoning—you might need a pinch more salt or a splash of fish sauce for balance. Let the whole dish simmer uncovered for 5 minutes to let the flavors meld.
This final step ensures every grain of rice absorbs the rich beef and coconut broth. The dish should have a luxurious, creamy texture with tender beef that falls apart at the touch. Garnish each serving with additional green onions and cilantro right before serving—this keeps the herbs vibrant and adds freshness to every bite.
Pro Tips For Making Beef Arroz Caldo
- Sear the Chuck Roast: Hit that beef with a screaming-hot pan first—no rushing. A deep, caramelized crust locks in flavor and keeps the meat from drying out later. I used to skip this and ended up with bland, stringy beef. Two minutes per side, no crowding the pan.
- Blanch the Ginger: Peel and slice the ginger, then drop it in boiling water for 30 seconds before adding to the broth. This mellows the bite and keeps the broth from getting overpoweringly sharp. (Yes, even if you’re impatient like me.)
- Simmer Rice Separately: Cook the jasmine rice in plain water first, then fold it into the coconut milk-broth mixture at the end. This prevents the rice from turning mushy in the rich liquid. I learned this the hard way after slurping a bowl of sad, gluey grains.
- Strain the Coconut Milk: Use a fine-mesh sieve or cheesecloth to remove any grit or skin from the coconut milk before adding it to the pot. That grit is the difference between smooth soup and something that feels like you’re chewing sand. (Trust me, you’ll notice.)
Serving suggestions for this dish
Garnish Like a Pro
Fresh herbs elevate this dish instantly. I always finish with 2 tbsp chopped cilantro and 2 green onions per serving, sliced thinly on top for vibrant color and bright flavor contrast.
For extra flair, add crispy fried shallots—just toss ¼ cup shallots in 1 tbsp oil and fry until golden. 🌿
Bread Pairings
This creamy arroz caldo pairs perfectly with crusty bread to soak up every last drop of broth. My go-to is Filipino pandesal (sweet bread rolls) or a simple baguette toasted with garlic butter.
For a heartier option, serve with garlic fried rice on the side—it turns this into a full meal.
Drink Recommendations
Light beers cut through the richness beautifully. I recommend a Filipino San Miguel Light or Asahi Super Dry for their crisp, clean profiles. For non-alcoholic options, coconut water (chilled) mirrors the dish's tropical notes, while hibiscus tea adds a tart contrast. 🍺
Presentation Tips
Serve in warm bowls with a sprinkle of black pepper on top for visual appeal. For family-style dining, arrange individual bowls on a platter with a ladle for second helpings.
I often add a small side of calamansi wedges on the table—squeezing fresh juice over the arroz caldo adds a zesty kick.
Leftovers Reinvented
Transform next-day arroz caldo into arroz caldo fried rice by pan-frying leftover portions with 1 egg and 1 tbsp soy sauce until crispy. For a lighter option, blend cooled broth with ½ cup coconut milk and serve as a creamy soup base with extra beef and rice on top.
Seasonal Variations
In summer, add diced mango (½ cup) for sweetness, while winter calls for shredded carrots (½ cup) and sliced mushrooms (½ cup) for heartiness. For a spicy kick, stir in ½ tsp chili flakes or a dash of sriracha before serving. 🌶️
Nutrition facts
Frequently asked questions
Can I use chicken instead of beef in this recipe?
Yes, but the texture and flavor will differ significantly. Chicken thighs work best—they stay tender during the long simmer. Use 2.5 lb boneless, skinless chicken thighs cut into 1.5-inch pieces, and reduce the cooking time to 45-50 minutes instead of 1 hour. The dish will be lighter but still delicious! For authentic flavor, stick with beef.
How do I make this dish faster without sacrificing flavor?
Use a pressure cooker! Sear the beef as directed, then add all broth ingredients and pressure cook for 25 minutes (high pressure) instead of simmering. The rice can cook simultaneously in a separate pot. This cuts prep time by 45 minutes while keeping the beef tender. For extra richness, stir in ½ cup coconut cream at the end.
What if my arroz caldo turns out too watery?
Simmer uncovered for 5-10 minutes to reduce the broth naturally. If it's still too thin, remove the lid and let it reduce further over low heat. For immediate thickening, mix 1 tbsp cornstarch with 2 tbsp water, stir into the broth, and cook for 2 minutes until it reaches your desired consistency. Avoid over-thickening—this dish should remain creamy, not pasty!
Can I prepare this recipe without coconut milk?
Yes, but the dish will lose its signature creamy texture. Replace the coconut milk with 1 cup evaporated milk plus 1 cup water for a lighter broth. For depth, add 1 tsp coconut extract or a pinch of nutmeg. The flavor will be different but still comforting. Traditional arroz caldo relies on coconut milk for its velvety mouthfeel, so use it if possible!
How do I store and reheat leftovers properly?
Store in an airtight container in the fridge for up to 4 days or freeze for 3 months. Reheat gently on the stove over low heat, adding 2-3 tbsp water to restore creaminess. For microwave reheating, cover with a damp paper towel and heat in 30-second intervals, stirring between each. The rice absorbs liquid when cold, so adding a splash of broth helps maintain texture.
