Vietnamese Beef Noodle Soup (Phở Bò)
Cozy up with this traditional Vietnamese beef pho: soft rice noodles in a rich, aromatic beefy broth, topped with green onions. This stovetop version takes about 3½ hours, but the flavor is worth the wait!

- Prep time
- 15 min
- Cook time
- 3 hr 15 min
- Yield
- 6 servings
- Difficulty
- HARD
Ingredients
- 2 lb beef soup bones (shank/femur marrow bones and knuckles)
- 2 lb beef neck bones (or oxtail)
- 2 lb bone-in beef short rib (or flank, brisket and boneless short rib)
- 5 quarts water
- 2 yellow onions (can sub with shallots or a combination of both)
- 4 inch ginger
- 4 inch stick Chinese/Saigon cinnamon
- 2 tsp cloves
- 2 tsp coriander seeds
- 2 cardamom pods
- 8 whole star anise
- 2 tsp fennel seeds
- 2+1/2 tbsp fine sea salt
- 3 tbsp fish sauce
- 2 tbsp white sugar or 20 grams rock sugar
- 1/2 tbsp MSG (optional)
- 2 lb fresh rice noodles
- 1/2 white or yellow onion (slice thinly)
- 1 small bunch cilantro (roughly chop)
- 5 green onions/scallions (slice thinly)
- 2 jalapenos (slice thinly)
- 2 limes (cut into wedges)
- Culantro, Thai basil, bean sprouts
- Hoisin sauce
- Sriracha chili sauce
Instructions
- 1
Add soup bones (2 lbs), beef neck bones (2 lbs), and bone-in beef short rib (2 lbs) to a large pot (at least 8-quart capacity). No need to parboil meat. Add water to cover and bring it to a boil (about 15 minutes). Boil for about 2 minutes or until impurities/foam rise to the top. Remove bones and rinse well. Clean the pot and return it to the stovetop. Alternatively, if you plan to skip parboiling, soak the bones in water for at least 30 minutes, rinse then drain dry before using.
- 2
Peel the onions (2) and halve them. Slice the unpeeled ginger (4-inch) into thick coins and give each coin a gentle smash to help release their aroma. Toast them in the air fryer or toaster onion at 400°F for about 10 minutes or until browned and fragrant.
- 3
Add cinnamon (1 stick), cloves (2 teaspoons), coriander seeds (2 teaspoons), cardamom pods (2), star anise (8), and fennel seeds (optional, 2 teaspoons) to a small frying pan. Toast them dry (no oil) until they start to smoke (about 1 minute). Tie them in cheesecloth or a spice bag to make them easy to remove later. You can also add them to the pot loosely if you’re planning to strain the entire pot.
- 4
Add the parboiled bones and raw meat, charred aromatics, and spices to the pot. Add water (5 quarts) and bring to a boil, then lower to a gentle simmer. Simmer for about three hours, uncovered. After the first hour, start skimming the impurities that rise to the top and discard them. If you happen to skim away some of the loose spices, it’s okay, as they have already done their job.
- 5
If you’re using meaty bones or meat-only cuts like bone-in short ribs or brisket, remove them as soon as they’re chopstick tender to prevent overcooking. This takes about 45 minutes for meat-only pieces and around 1 hour 45 minutes for those massive Costco beef short ribs. Put the bones back into the pot to keep simmering (the bones separate from the meat easily). Refrigerate the meaty pieces or submerge them in ice water to stop the cooking and help them firm up quickly, then thinly slice and set aside to use as toppings later.
- 6
Strain out all the solids, leaving a clear broth. Now is the time to skim the entire top portion of the stock to remove excess fat. You can set this aside as nước béo, which is often served on the side for those who love it fatty.
- 7
Add salt (2 1/2 tablespoons), fish sauce (3 tablespoons), white sugar (2 tablespoons) or rock sugar (20 grams), and MSG (1/2 tablespoon) if using. Add a little at a time and season to taste or until the broth is balanced, savory, and slightly sweet.
- 8
Cook the rice noodles (2 lbs fresh) according to the package instructions then rinse and drain well.
- 9
Place noodles and cooked meats in a bowl. Top with raw beef slices if using, then pour hot broth over everything to cook the raw meat. Top with thinly sliced onions, green onions, cilantro and serve with additional accompaniments if preferred and enjoy!