Arroz Caldo (Filipino Chicken and Rice Soup) Recipe

an overhead photo Arroz Caldo (Filipino chicken and rice soup)

Melissa Hom

Arroz caldo is a hearty Filipino congee made with chicken and rice and seasoned with onion, garlic, ginger, and fish sauce and topped with crunchy fried garlic. The result is a quick, comforting bowl that's a perfect wintertime meal (and rivals chicken soup for its ability to sooth those suffering from a cold).

Why this recipe works:

  • Starting the garlic in room-temperature oil and slowly increasing the heat crisps it without burning.
  • Chicken thighs add more flavor and stay more tender compared to breast meat.
  • Fish sauce adds a robust, savory flavor to the dish.

Note: While we prefer this dish with tender chicken thighs, you can substitute an equal quantity of breast meat. Calamansi, a very sour citrus fruit, is typical in Filipino cooking, but can be hard to find fresh; fresh lime or key lime works well in its place.

Recipe Facts



Active: 25 mins
Total: 45 mins
Serves: 4 servings

Rate & Comment


  • 1/2 cup plus 3 tablespoons canola oil, divided

  • 1/4 cup freshly minced garlic (about 12 medium cloves), divided

  • 1 1/2 pounds boneless, skinless chicken thighs, cut into bite-sized pieces (see note)

  • 1 medium onion, thinly sliced

  • 1 tablespoon freshly minced ginger

  • 1 tablespoon Asian fish sauce

  • 1 teaspoon freshly ground black pepper, plus more to taste

  • 1 cup uncooked jasmine rice

  • 6 cups homemade chicken stock or low-sodium broth

  • 1 tablespoon calamansi, key lime, or lime juice (see note)

  • Kosher salt

  • 4 scallions, thinly sliced

  • 2 hard-boiled eggs, cut into 1/4-inch slices (optional)

  • 2 fresh limes or calamansi, quartered


  1. Place 1/2 cup oil and two-thirds of the garlic in a small saucepan over medium heat. Cook, stirring occasionally, until garlic turns light golden brown. Transfer garlic to fine mesh strainer and drain. Spread garlic out on a paper towel-lined plate and set aside.

    collage: frying garlic in oil; fried garlic on paper towels

    Melissa Hom

  2. In a large Dutch oven or soup pot, heat remaining 3 tablespoons oil over medium-high heat until shimmering. Add chicken and cook, stirring occasionally, until browned, about 6 minutes. Add onion and cook, stirring and scraping, until onions soften and release their liquid, about 3 minutes. Stir in ginger and remaining garlic and cook until onions begin to brown, about 3 minutes. Stir in fish sauce and pepper and cook for 1 minute. Add rice and stir until well coated.

    collage: browning chicken; adding vegetables and aromatics; everything cooked together and nicely browned; white rice added

    Melissa Hom

  3. Stir in chicken stock, running spoon along bottom of Dutch oven to release any browned bits. Bring to a boil, then reduce to a simmer, cover, and cook until rice is completely tender and stock has thickened, about 30 minutes. Stir in lime or calamansi juice and season with salt and pepper to taste.

    Arroz caldo after rice has been added and cooked on the stovetop

    Melissa Hom

  4. Ladle arroz caldo into bowls. Top with scallions, fried garlic, and egg slices, if using. Serve immediately with additional lime or calamansi wedges on the side.

    A small bowl of arroz caldo topped with sliced limes and boiled egg

    Melissa Hom

Special equipment

Dutch Oven or soup pot

This Recipe Appears In

Nutrition Facts (per serving)
497 Calories
24g Fat
25g Carbs
49g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 4
Amount per serving
Calories 497
% Daily Value*
Total Fat 24g 31%
Saturated Fat 5g 25%
Cholesterol 208mg 69%
Sodium 1728mg 75%
Total Carbohydrate 25g 9%
Dietary Fiber 3g 9%
Total Sugars 3g
Protein 49g
Vitamin C 24mg 120%
Calcium 103mg 8%
Iron 4mg 22%
Potassium 975mg 21%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)