
Vietnamese Pho Bo (Beef Noodle Soup)
A clear, deeply aromatic beef broth simmered for 3½ hours with charred onion, ginger, and warm spices, ladled over tender rice noodles and paper-thin flank steak that cooks right in the bowl. Served with a platter of fresh herbs, bean sprouts, and lime.
- Prep
- 1 hr
- Cook
- 4 hr 3 min
- Total
- 5 hr 3 min
- Makes
- 6 large bowls (about 3 liters / 3 quarts of broth)
Steps
Before you start
- Plan on about 5 hours start to finish; most of it is hands-off simmering. Prep the garnishes and steak while the broth simmers (step 6).
- Buy beef bones in advance: a mix of knuckle, marrow, and oxtail or meaty neck bones gives the best flavor and body. Ask the butcher to cut large bones into 3-inch (7.5 cm) pieces if they are very long.
- Clear space for a 12-quart (11 L) stockpot. A smaller pot will not hold the bones plus the water.
- Fish sauce and salt levels vary by brand, so season the finished broth gradually and taste as you go.
Parboil the bones
- Put the beef bones in the 12-quart (11 L) stockpot and add the 3,800 ml (4 qt) cold parboiling water so the bones are fully covered.
- Bring to a full boil over high heat (about 15 minutes), then boil hard for 10 minutes.
- Grayish-brown foam and scum will rise to the surface.
+ Show details− Hide details
Ready when: Thick gray foam covers the surface and the water looks murky
Tip: This step is what keeps the final broth clear instead of cloudy, so don't skip it.
Rinse bones and pot
- Carefully drain the bones into a colander in the sink.
- Rinse each bone under running warm water, scrubbing off any dark scum or bits of blood with your fingers.
- Wash the stockpot well to remove all residue, then return the clean bones to it.
+ Show details− Hide details
Ready when: Bones look pale and clean with no dark scum clinging to them
Tip: Use oven mitts and drain away from you; the pot and steam are very hot.
Char onion and gingerOven 500°F / 260°C
- Position an oven rack 4 inches (10 cm) below the broiler and heat the broiler to high (about 500°F / 260°C).
- Place the onion halves cut-side down and the ginger on the foil-lined baking sheet.
- Broil 6–8 minutes, flip, and broil another 6–8 minutes.
+ Show details− Hide details
Ready when: Onion edges are blackened in spots and the ginger is blistered, fragrant, and softened
Tip: Watch closely; broilers vary and the char should be dark in patches, not burnt all over.
Toast the spices
- Combine the star anise, cinnamon stick, cloves, coriander seeds, and fennel seeds in the small dry skillet.
- Toast over medium-low heat, shaking the pan often, for 2–3 minutes.
- Tip onto a square of cheesecloth, gather the corners, and tie with kitchen twine into a bundle.
+ Show details− Hide details
Ready when: Spices smell strongly aromatic and the coriander seeds are a shade darker
Tip: Pull the pan off the heat the moment the spices smell fragrant; burnt spices make the broth bitter.
Start the broth
- Add the charred onion, ginger, spice bundle, and 4,700 ml (5 qt) cold water to the pot with the clean bones.
- Bring to a boil over high heat, then reduce to low so the surface barely bubbles.
- Skim off any foam that rises during the first 20 minutes with a skimmer or large spoon.
+ Show details− Hide details
Ready when: Surface shows only a few lazy bubbles and the liquid is fairly clear
Tip: Never let the broth boil hard after this point; a rolling boil emulsifies fat and clouds the broth.
Prep steak and garnishes
- While the broth simmers, put the flank steak in the freezer for 20 minutes.
- Meanwhile, slice the white onion paper-thin and soak in cold water; slice the scallions; chop the cilantro; rinse the bean sprouts; pick the Thai basil leaves; cut the limes into wedges; and slice the chiles, if using.
- Remove the steak, trim it, and slice against the grain as thinly as possible.
- Arrange the steak on a plate, cover, and refrigerate.
- Arrange the garnishes on a serving platter.
+ Show details− Hide details
Ready when: Steak slices are almost translucent and about 1/16 inch (2 mm) thick
Tip: A well-chilled, firm steak slices far more thinly than a soft one; use your sharpest knife.
Simmer the broth
- Partially cover the pot and keep the broth at a gentle simmer on low heat for 2½ more hours (3½ hours total).
- Stir rarely and top up with a little hot water if the level drops below the bones.
+ Show details− Hide details
Ready when: Broth is deeply fragrant, tastes rich and beefy, and the meat on the bones is very tender
Tip: If the broth smells strongly of cinnamon or anise early on, lift out the spice bundle after 2 hours.
Strain and season
- Lift out the bones, onion, ginger, and spice bundle with tongs and discard (or pick off any tender meat to add to the bowls).
- Pour the broth through a fine-mesh strainer into a clean large pot.
- Skim excess fat from the surface with a ladle.
- Stir in the fish sauce, rock sugar, and kosher salt until dissolved, then taste and adjust with more fish sauce or salt.
+ Show details− Hide details
Ready when: Broth is clear, amber, and savory with a hint of sweetness; it should taste slightly over-seasoned since noodles will dilute it
Tip: Season in small increments; fish sauce brands differ widely in saltiness.
Cook the noodles
- Bring the 4-quart (3.8 L) pot of water to a boil over high heat.
- Add the rice noodles and cook according to the package directions, usually 5–8 minutes, stirring once or twice to keep them from clumping.
- Drain, rinse briefly under warm water, and divide among 6 deep bowls.
+ Show details− Hide details
Ready when: Noodles are soft and tender with a slight chew, not mushy
Tip: Cook the noodles just before serving; they turn gummy if left to sit.
Assemble and serve
- Return the broth to a rolling boil over high heat.
- Top each bowl of noodles with several slices of raw flank steak, a spoonful of drained white onion, scallions, and cilantro.
- Ladle about 1½ to 2 cups (350–500 ml) of boiling broth over each bowl; the hot broth cooks the beef within a minute.
- Serve immediately with the platter of bean sprouts, Thai basil, lime wedges, and chiles, plus hoisin and sriracha on the side.
+ Show details− Hide details
Ready when: Steak slices turn from red to mostly gray-brown with a hint of pink in the center
Tip: The broth must be at a full boil when it hits the bowl or the thin steak won't cook through. Leave any steak slices you want more done submerged for an extra minute.
Good to know
Tips
- Parboiling and rinsing the bones, then keeping the simmer very gentle, is the secret to a crystal-clear broth.
- Chill the broth overnight so the fat solidifies, making it easy to lift off for a cleaner, lighter pho.
- Warm the serving bowls with hot tap water before assembling so the broth stays piping hot at the table.
- Add herbs, sprouts, and lime to individual bowls as you eat so they stay fresh and crisp.
Make ahead
"The broth can be made through step 8 up to 3 days ahead; cool, refrigerate, and lift off the solidified fat before reheating. Slice the steak and garnishes up to 8 hours ahead and keep refrigerated, covered. Cook the noodles fresh just before serving."
Storage & reheating
"Store leftover broth in airtight containers in the refrigerator for up to 4 days or freeze for up to 3 months. Keep noodles, steak, and garnishes separate; refrigerate up to 2 days. Reheat broth on the stovetop until at a full rolling boil. Do not store assembled bowls at room temperature for more than 2 hours."
Substitutions
- yellow rock sugar → granulated sugar. Use 2 tablespoons (25 g); rock sugar gives a rounder sweetness but plain sugar works.
- Thai basil → regular sweet basil plus a few mint leaves. Gives a similar fresh, slightly anise-like note.
- flank steak → beef eye of round or sirloin. Slice just as thinly; both are lean and tender when cut this way.
- dried flat rice noodles (banh pho), medium width → fresh banh pho noodles. Use about 1¼ lb (570 g); just dip in boiling water for 15–20 seconds to loosen.
More noodle soups
See all →Find more like this
- Meal
- Dinner
- Cuisine
- Vietnamese
- Main ingredient
- Steak
- Diet
- Dairy-FreeHalal





