Main Courses
This Cantonese chicken rice recipe delivers the fragrant, aromatic essence of Hong Kong street kitchens in your home kitchen. The secret lies in five-spice jasmine rice infused with poached chicken, where every bite carries the delicate balance of star anise, cinnamon, and cloves.
After perfecting this dish through countless batches, I’ve refined the technique to ensure tender, juicy chicken and a broth so rich it transforms plain rice into something extraordinary.
The key to authenticity begins with a properly brined chicken, poached gently in a fragrant broth of ginger, garlic, and star anise until the meat is fork-tender. The rice absorbs the essence of the broth, becoming fragrant and slightly sticky—not mushy, but infused with depth.
Served with traditional sides like ginger paste, chili sauce, and crisp cucumber, this dish is more than a meal; it’s a taste of nostalgia and tradition. Ready in under 2 hours, it’s worth every minute for a restaurant-quality experience at home.
Ingredients for cantonese chicken rice
These carefully selected ingredients transform ordinary rice and chicken into a fragrant, aromatic masterpiece.
| Ingredient | Amount | Notes |
|---|---|---|
| Whole Chicken Legs 🍗 | 1 ½ lb | Bone-in, skin-on, cut into 2-inch pieces |
| Jasmine Rice 🌾 | 1 ½ cups | Uncooked, long-grain preferred |
| Star Anise Pods 🌿 | 2 whole | Whole, not ground |
| Cinnamon Sticks 🍃 | 2 whole | 1-inch pieces |
| Cloves 🌶️ | 4 whole | Whole, not ground |
| Fresh Ginger Root 🧅 | ½ cup | Julienned, skin-on |
| Garlic Cloves 🧄 | 6 cloves | Smashed, not minced |
| Light Soy Sauce 🥫 | ¼ cup | Kikkoman preferred |
| Shaoxing Wine 🍷 | ¼ cup | Substitute dry sherry if unavailable |
| Sesame Oil 🫒 | 1 tbsp | Toasted, not flavored |
| Vegetable Oil 🫒 | ¼ cup | High smoke point |
| Green Onions 🧅 | ¼ cup | Sliced, white and green parts |
| Salt 🧂 | 1 ½ tsp | Diamond Crystal preferred |
| White Peppercorns 🌶️ | ½ tsp | Freshly cracked |
| Coconut Milk 🥥 | ½ cup | Full-fat, for rice infusion |
The chicken quality is non-negotiable—bone-in, skin-on pieces from the grocery store's fresh poultry counter ensure maximum flavor. Look for plump, firm thighs with minimal bruising, as they hold up best during poaching. For the five-spice blend, star anise, cinnamon, and cloves must be whole and aromatic—Whole Foods or Asian markets carry the best quality. The ginger and garlic should be freshly julienned and smashed respectively, as pre-minced versions lose their potency. Shaoxing wine, if unavailable, can be substituted with dry sherry (like Sutter Home), though it won't be identical.
No star anise? 1 tsp ground five-spice powder works in a pinch, though the aroma won't be as complex. Substitute fresh turmeric for a hint of color if you lack ginger, but the dish will lose its signature depth. Light soy sauce is critical—dark soy sauce will overpower the delicate flavors. For the rice, jasmine rice is non-negotiable; basmati or long-grain white rice won't yield the same fragrant result. Coconut milk adds a subtle richness, but if you're avoiding dairy, unsweetened almond milk can replace it without drastically altering the texture. Sesame oil should be toasted, not flavored—Kadoya is a reliable brand for authentic taste.
Store the poached chicken in the broth for up to 3 days in the fridge, as the flavors deepen over time. The jasmine rice should be kept in an airtight container for 2 days, though it's best served fresh. Five-spice pods can be reused in soups or braises for 2-3 batches before losing potency. Fresh ginger and garlic should be refrigerated in sealed containers for 1 week, while whole spices last 6-12 months in a cool, dark place. For leftovers, reheat the rice and chicken separately—microwaving rice makes it gummy, so steam it over boiling water instead.
Why You'll Love This Recipe
- One-Pot Magic: Honestly, I swear by this—just toss the chicken legs, star anise, cinnamon, and cloves into a pot with water, bring it to a boil, then simmer while you cook the rice. No chopping, no fuss, and the spices infuse the broth so effortlessly.
- Spice-Soaked Perfection: That first bite of tender chicken with its fragrant, lightly spiced broth? It’s like a warm hug in food form. The star anise and cinnamon give it this deep, aromatic richness that’s way more exciting than plain chicken and rice.
- Meals for Days: Between us, this recipe makes enough for leftovers that taste just as good the next day. I’ll often double the rice and freeze half—perfect for lazy lunches or when I’m too tired to cook.
- Budget Win: Whole chicken legs are cheap, and the spices last forever. I’ve made this for potlucks, family dinners, and even as a quick lunch—it’s my go-to when I need something hearty without breaking the bank.
Step-by-step instructions for Cantonese chicken rice
Master the balance of fragrant rice and poached chicken with this authentic method.
Prepare the Five-Spice Poaching Broth
In a large pot, combine the 1.5 lb whole chicken legs, 0.5 cup fresh ginger root, 6 smashed garlic cloves, 2 whole star anise pods, 2 whole cinnamon sticks, 4 whole cloves, 0.25 cup light soy sauce, 0.25 cup shaoxing wine, 1.5 tsp salt, and 0.5 tsp white peppercorns. Add 8 cups water (enough to fully submerge the chicken) and bring to a boil over high heat.
Once boiling, immediately reduce to low heat and skim off any foam that rises to the surface. The broth should gently simmer—not bubble vigorously—to prevent the chicken from cooking too quickly on the surface. Cover and poach for 45-50 minutes, until the chicken is fork-tender and the meat easily separates from the bone. The broth should develop a deep, aromatic fragrance from the spices.
Infuse the Jasmine Rice with Coconut Milk
While the chicken poaches, rinse the 1.5 cups jasmine rice under cold water until the water runs clear. In a separate bowl, combine the rinsed rice with the 0.5 cup coconut milk and gently stir to coat each grain. Let it sit for 10 minutes to absorb the subtle coconut aroma, which enhances the rice's natural fragrance.
In a heavy-bottomed pot, heat the 0.25 cup vegetable oil over medium heat until shimmering. Add the rice and toast for 2-3 minutes, stirring constantly, until the grains turn slightly translucent at the edges. This step, called "toasting," prevents the rice from becoming mushy. Immediately add 2 cups water (for each cup of rice) and bring to a boil. Once boiling, reduce to low heat, cover tightly, and simmer for 15 minutes without lifting the lid.
Finish the Rice with Aromatic Steaming
After 15 minutes, turn off the heat and let the rice steam undisturbed for an additional 10 minutes. This resting period allows the rice to absorb any remaining moisture and develop a light, fluffy texture. Open the lid carefully to release steam, then fluff the rice gently with a fork, separating the grains to prevent clumping.
In a small bowl, mix the 1 tbsp toasted sesame oil with the 0.25 cup sliced green onions. Drizzle this mixture evenly over the finished rice and toss lightly. The sesame oil adds a nutty depth, while the green onions provide a fresh contrast to the rich, spiced rice. Keep the rice covered to retain heat until ready to serve.
Shred and Serve the Poached Chicken
Using tongs, carefully remove the poached chicken from the broth and transfer it to a cutting board. Let it rest for 5 minutes before shredding. The chicken should be tender enough to pull apart with minimal effort—if it resists, return it to the broth for another 5-10 minutes of gentle poaching.
Shred the chicken into bite-sized pieces, discarding the skin and bones. Return the shredded chicken to the poaching broth and warm through over low heat for 2-3 minutes. Ladle the fragrant broth and chicken over the steamed rice, ensuring each serving gets an even distribution of both components. Garnish with additional sliced green onions for brightness and serve immediately.
Pro Tips For Making Cantonese Chicken Rice
- CRACK THE SKIN FIRST: Don’t skip this—score the chicken legs in a crosshatch pattern with a sharp knife, then blanch them in boiling water for 30 seconds. This guarantees the skin crisps properly later, even if you’re impatient like me. (Yes, I’ve tried skipping it, and the results were sad.)
- TOAST THE SPICES: Dry-toast your star anise, cinnamon sticks, and cloves in a separate pan for 30 seconds until fragrant—this unlocks their flavor. I learned this the hard way when my broth tasted bland because I just tossed them in raw. (Now I always do this first.)
- POACH LOW AND SLOW: Simmer the chicken in the broth at a gentle bubble, not a rolling boil—180°F (82°C) is ideal. I used to rush it, and the meat turned out dry. A meat thermometer is worth it here; aim for 165°F (74°C) internal temp.
- USE LESS RICE, MORE WATER: The classic 1:2 rice-to-water ratio is a myth for Cantonese-style rice—use 1:2.5 instead, and don’t stir after the first 5 minutes. I was skeptical until I tried it; the grains stay separate and fluffy, just like the hawker stalls do.
Flavor customization for this dish
Spice Level Control
Adjust the heat to your preference by modifying the ginger and chili content. For mild heat, reduce fresh ginger to 0.25 cup and omit chili sauce entirely. For medium heat, keep the original 0.5 cup ginger and add 1 tbsp chili sauce to the rice.
For spicy kick, increase ginger to 0.75 cup and add 2 tbsp chili sauce—plus ½ tsp red pepper flakes to the broth while poaching. 🌶️
Sweet-Savory Balance
Enhance sweetness naturally by adding 1 tbsp honey or 1 tsp brown sugar to the poaching broth. For deeper umami, stir 1 tbsp oyster sauce into the rice after cooking.
Balance richness with 1 tsp rice vinegar (like Kikkoman) drizzled over the finished dish. This creates a harmonious contrast without overpowering the five-spice aroma.
Herb Variations
Swap traditional herbs for regional twists. For Singaporean-style, add ½ cup lemongrass (bruised) and 1 stalk pandan leaf to the broth. For Hong Kong-inspired, include 1 tsp white pepper and 1 tsp coriander seeds (toasted) with the five-spice.
Both variations keep the dish aromatic while introducing fresh, bright notes.
Protein Swaps
Replace chicken with pork belly (cut into 1-inch cubes) for a Singaporean-style twist—simmer for 1 hour until tender. For vegetarian, use mushrooms (like shiitake) and tofu (firm, pressed) in the broth.
Marinate tofu in 1 tbsp soy sauce + 1 tsp five-spice before adding. The rice remains the star, but these swaps adapt the dish to dietary needs.
Rice Texture Adjustments
For stickier rice, increase coconut milk to ¾ cup and reduce water by ½ cup. For lighter rice, use 1.75 cups water (instead of 2) and skip the coconut milk.
Both methods maintain fragrance—stickier rice soaks up more broth, while lighter rice stays separate for easier serving. Adjust based on preference! 🌾
Broth Depth Enhancers
Boost broth complexity by adding 1-inch slices of daikon radish (for mild sweetness) or 1 tbsp fish sauce (for umami). For a vegetarian broth, substitute fish sauce with 1 tbsp soy sauce + 1 tsp miso paste. These additions deepen flavor without altering the dish’s core aromatic profile.
Nutrition facts
Frequently asked questions
Why does authentic Cantonese chicken rice use jasmine rice instead of basmati?
The fragrant aroma of jasmine rice is essential—it absorbs the five-spice broth beautifully, creating that signature sweet, floral note that basmati lacks. The slightly sticky texture also helps the rice cling to the chicken and broth, making each bite cohesive. For best results, never substitute with long-grain white rice.
Can I make this recipe without star anise or other whole spices?
You can substitute with 1 tsp ground five-spice powder, but the flavor won't be as complex. For star anise specifically, try ½ tsp anise seeds—they're less aromatic but still add depth. If avoiding all whole spices, increase ginger to 0.75 cup and add 1 tsp cinnamon + ½ tsp cloves (ground) to the broth.
What's the secret to perfectly poached chicken that stays juicy?
Start with bone-in, skin-on chicken and never boil vigorously—keep the broth at a gentle simmer to prevent toughening. The 45-50 minute poach time is critical: chicken should be fork-tender but still moist. Always rest the chicken 5 minutes before shredding to redistribute juices.
How do I store leftovers to maintain freshness?
Keep the chicken and rice separate in airtight containers. The chicken stays fresh for 3 days in the broth (flavors deepen!), while rice keeps 2 days. Reheat rice by steaming over boiling water—microwaving makes it gummy. For longer storage, freeze chicken (up to 3 months) and rice (up to 1 month).
What are the key differences between Hong Kong and Singaporean chicken rice?
Hong Kong-style uses five-spice in both broth and rice, with a focus on aromatic herbs. Singaporean versions often include lemongrass and pandan, plus a sweeter, spicier ginger paste. The rice texture differs too—Singapore's is slightly stickier, while Hong Kong's stays lighter. Both use poached chicken, but Singaporean recipes may add pork belly** as an option.
