Soups & Stews
This milky pork bone soup transforms tough pork bones into velvety silk through slow simmering—just like my grandmother used to make in Georgia. The secret lies in collagen-rich bones and dairy that melts into the broth, creating a luxurious texture that feels like a hug in a bowl.
I’ve perfected this technique over years of cooking whole-hog feasts, ensuring every spoonful delivers deep marrow flavor and comforting warmth.
The process begins with pork bones (neck, feet, or knuckles) that release gelatin as they simmer for hours, while aromatics like ginger, star anise, and cinnamon build complex layers of flavor. Adding coconut milk or evaporated milk at the end creates that signature milky richness without curdling.
This isn’t just soup—it’s a restaurant-quality dish that rivals any Asian milk soup or Southeast Asian comfort food tradition.
By the time you’re done, you’ll have a silky, marrow-rich broth that’s perfect for serving over rice or with pickled vegetables for contrast. The slow cooking ensures tender meat that falls apart at the touch of a spoon, while the dairy adds a velvety finish.
It’s the kind of meal that turns weeknights into celebrations—just like the ones I grew up with in my grandmother’s kitchen.
Whether you’re recreating a family heirloom or discovering a new favorite, this soup delivers foolproof results with minimal effort after the initial prep. The key is patience—let the bones work their magic, and the rest will take care of itself. Here’s how to make it.
Ingredients for milky pork bone soup
Six pounds of collagen-rich bones and simple aromatics create restaurant-quality silk.
| Ingredient | Amount | Notes |
|---|---|---|
| Pork Bones 🍖 | 4 lb | Neck, feet, or knuckles preferred |
| Fresh Ginger 🧄 | ½ cup | Peeled, roughly chopped |
| Star Anise Pods 🌿 | 4 whole | Whole pods for infusion |
| Cinnamon Sticks 🌿 | 2 whole | 2-inch pieces for aroma |
| Garlic Cloves 🧄 | 8 cloves | Smashed for deeper flavor |
| Green Onions 🧅 | 1 whole | White and green parts separated |
| Dried Bay Leaves 🌿 | 2 whole | Standard size |
| Coconut Milk (Full-Fat) 🥥 | 13 ½ oz | Canned, full-fat preferred |
| Evaporated Milk 🥛 | 12 oz | Canned, unsweetened |
| Salt 🧂 | 1 ½ tbsp | Kosher or sea salt |
| Black Peppercorns 🌶️ | 1 tbsp | Crushed lightly |
| Sesame Oil 🫒 | 1 tbsp | For finishing |
| Cornstarch 🌾 | 1 tbsp | For thickening |
| White Rice 🍚 | 2 cups | Uncooked, long-grain |
The bones are everything here—look for neck bones or knuckles at your butcher, not just scraps. Costco or local farms often have them pre-cut, but if you're buying whole, ask for the marrow-rich pieces. Fresh ginger should be vibrant yellow with no soft spots; Trader Joe's sells great organic roots. Star anise and cinnamon? The whole spices are non-negotiable—they infuse flavor better than ground. I always double-check my spice drawer for whole pods before starting; Penzeys sells them in bulk if you need a refill. The coconut milk must be full-fat—none of that light stuff. And for the evaporated milk, Carnation brand is my go-to; it's the only one that doesn't curdle when heated.
No star anise? Anise seeds or fennel seeds work in a pinch, but you'll lose that signature depth. Running low on cinnamon? Cassia bark is a perfect swap—just use the same amount. The ginger can be peeled and sliced, but I prefer to roughly chop it so it releases flavor faster. For the dairy, coconut milk can be swapped for heavy cream if you're not dairy-sensitive, but the coconut gives that authentic Southeast Asian touch. The sesame oil is just for finishing—don't skip it, but toasted sesame oil makes a world of difference. And if you're making a big batch, double the cornstarch for every extra 2 cups of broth.
This soup tastes even better the next day—reheat gently on low heat with the lid slightly ajar. Store the bones separately if you want to make a second batch; they'll give you even more gelatin next time. The broth keeps 5 days in the fridge or 3 months frozen. I always make extra rice to go with it—jasmine rice works beautifully. For serving, keep the sesame oil in a small dish on the table so everyone can drizzle their own. The leftovers freeze perfectly; just reheat with a splash of water to restore that silky texture.
Why You'll Love This Recipe
- Simmer-Simple Magic: I swear by the slow cooker here—just toss in the pork bones, a handful of ginger slices, and those little star anise pods. By the time I’m done chopping veggies for dinner, the broth is already rich and fragrant, with that deep, caramelized edge from the bones.
- Ginger-Garlic Hug: Between us, the ginger and garlic in this soup are the stars. The fresh ginger adds a zesty kick, while the garlic—roasted lightly in the broth—gives it this irresistible warmth. It’s the kind of flavor that makes you want to slurp it straight from the pot.
- Leftovers That Win: Honestly, I make this on Sundays just because the leftovers are that good. The broth thickens overnight, and reheating it turns it into a creamy, milky dream—perfect for quick lunches or feeding a crowd without extra effort. (Yes, even on a Tuesday night.)
- Budget Bone Broth: Star anise and cinnamon sticks might sound fancy, but they’re cheap and pack a punch. The pork bones? Even better—they turn what would be scraps into a flavor bomb. I’ve spent $15 on ingredients for a pot that feeds four for days. That’s a win.
Step-by-step instructions for milky pork bone soup
Here's how to transform humble pork bones into a velvety, marrow-rich soup that balances earthy depth with creamy silk.
Prepare the Pork Bones for Maximum Flavor
Rinse the 4 lb pork bones thoroughly under cold water to remove any impurities, then place them in a large stockpot. Cover with cold water by about 2 inches and bring to a boil over high heat. Once boiling vigorously, reduce heat to medium-low and simmer uncovered for 30-45 minutes to remove impurities and surface proteins.
During this time, you'll see frothy scum rise to the surface. Skim this off with a large spoon or fine-mesh skimmer as it appears—this ensures a crystal-clear broth. I press down gently on the bones with a wooden spoon to help release any trapped debris. After 30 minutes, drain the water completely and return the bones to the clean pot.
Build the Aromatic Base
In the same pot, add the 0.5 cup fresh ginger, 8 cloves smashed garlic, 2 whole cinnamon sticks, 4 whole star anise pods, 2 whole dried bay leaves, and 1.5 tbsp salt. Pour in 8 cups cold water (enough to cover the bones by 1 inch) and bring to a boil over medium-high heat. Once boiling, reduce heat to low and let it simmer gently for 2 hours, maintaining a very slow bubble.
The reason for this long simmer is to extract the marrow from the bones and infuse the broth with deep, complex flavors. You'll notice the broth will turn a rich amber color and develop a subtle sweetness from the ginger and garlic. If the water level drops below 1 inch above the bones, add hot water as needed—never cold, as it will shock the broth.
Strain and Add the Creamy Elements
After 2 hours, carefully strain the broth through a fine-mesh sieve or cheesecloth-lined colander into a large pot, pressing gently on the solids to extract every last bit of flavor. Discard the solids. Return the strained broth to the pot and stir in the 13.5 oz full-fat coconut milk and 12 oz evaporated milk. Add the 1 tbsp crushed black peppercorns and bring the mixture to a gentle simmer over medium heat.
Here's where the magic happens: the coconut and evaporated milk create that signature creamy texture while keeping the broth rich and velvety. Simmer for 10 minutes to let the flavors meld. Taste and adjust seasoning with additional salt if needed—this soup should balance sweet, savory, and umami perfectly.
Thicken and Finish with Rice
In a small bowl, whisk together the 1 tbsp cornstarch with 2 tablespoons cold water to form a smooth slurry. Slowly pour this into the simmering broth while stirring constantly with a wooden spoon. The broth will begin to thicken immediately—simmer for another 3-5 minutes until it reaches a light, creamy consistency, like heavy cream.
In a separate pot, rinse the 2 cups white rice under cold water until the water runs clear. Add the rice to the broth and stir once gently. Cover the pot and reduce heat to low. Let it simmer for 15-20 minutes until the rice is tender and the liquid is absorbed. If the soup seems too thick, add hot water as needed to reach your desired consistency.
Garnish and Serve with Confidence
Remove the pot from heat and let it sit, covered, for 5 minutes to allow the rice to finish steaming. Stir in the 1 tbsp sesame oil and the white and green parts of the green onions, chopped separately. The sesame oil adds a nutty aroma that brightens the dish, while the green onions provide a fresh contrast to the rich broth.
Serve the soup immediately in deep bowls, ensuring each serving has a generous portion of rice at the bottom. The broth should coat the back of a spoon with a luxurious creaminess, while the rice soaks up the marrow-rich flavors. For extra depth, crack a few black peppercorns on top of each serving before eating—this releases their aromatic oils and enhances the overall experience.
Pro Tips For Making Milky Pork Bone Soup
- CHAR THE BONES FIRST: Skip the slow simmer until later—give those pork bones a 10-minute sear in a dry pot over medium-high heat. The crust locks in flavor and keeps the broth from turning cloudy later. (Yes, even if your kitchen smells like a barbecue for a minute.)
- PEEL THAT GINGER THIN: Don’t just slice ginger in thick chunks—use a peeler to shave it into paper-thin sheets. It infuses faster and dissolves without leaving bitter chunks. (I used to toss in big slices and wonder why my soup tasted uneven.)
- DON’T BOIL THE SPICES: Star anise and cinnamon sticks add depth, but toss them in after the water boils and the bones are simmering gently. Boiling them first burns their flavor and leaves a bitter aftertaste. (Trust me, you’ll notice the difference.)
- USE COLD WATER, PATIENCE: Start with cold water and pork bones in the pot—never hot. The gradual heat rise extracts collagen better and prevents the broth from turning murky. I know it feels slow, but rushing this step makes the soup taste flat.
Make-ahead tips for this dish
Prep Ahead Strategy
Start by prepping all your aromatics and bones the night before—chop the ginger, smash the garlic, and rinse the pork bones. Store them in airtight containers in the fridge. This saves 30 minutes of prep on cooking day.
I always pre-measure the spices too—star anise and cinnamon sticks go in a small jar with the bay leaves for easy access. 💪
Bone Prep Shortcut
Skip the initial 30-minute simmer to remove impurities by using high-quality bones from a trusted butcher. I source mine from local heritage pig farms in Georgia, where they're already cleaned.
If you're using store-bought bones, just rinse them thoroughly and proceed—this cuts your active time by 45 minutes without sacrificing flavor.
Broth Base Make-Ahead
After the 2-hour simmer, let the broth cool completely, then transfer it to quart-sized freezer bags or airtight containers. It keeps in the fridge for 5 days or freezes beautifully for 3 months.
When ready to finish, simply thaw overnight in the fridge, strain again, and add the dairy and rice fresh. This is my go-to method for busy weeks.
Dairy Prep Tip
Measure out the coconut milk and evaporated milk the day before and store them in the fridge. Keep them sealed in their original cans until ready to use—this prevents the coconut milk from absorbing fridge odors.
I also pre-portion the cornstarch slurry in a small container so it's ready to go when you need to thicken the soup. 🥥
Rice Cooking Hack
Cook the white rice separately in advance and store it in the fridge. When you're ready to assemble, simply reheat the rice with a splash of water or broth, then add it to the warmed soup.
This keeps the rice from turning mushy during the long simmer. I like to cook extra rice—it's perfect for leftovers or as a side dish.
Final Assembly Timeline
On serving day, reheat your pre-made broth to a simmer, then add the dairy and cornstarch slurry. Let it thicken for 5 minutes, then stir in the pre-cooked rice. The whole process takes just 20 minutes from start to finish.
Keep the sesame oil and green onions separate until serving so they stay fresh and vibrant. This approach turns a 4-hour project into a 30-minute assembly on busy days. ✨
Nutrition facts
Frequently asked questions
Why does this soup turn milky in color?
The creamy texture comes from two key ingredients: coconut milk and evaporated milk added at the end. The coconut milk provides richness while the evaporated milk adds a subtle sweetness and velvety finish. The long simmer also helps emulsify the fats from the pork bones, creating that signature silky appearance.
Can I make this soup without dairy?
For a dairy-free version, replace the coconut milk with cashew cream (blend soaked cashews with water) and use coconut cream instead of evaporated milk. The broth will still be rich and flavorful, just with a slightly different texture. I've tested this version with great success at family gatherings.
What's the best way to store leftovers?
Let the soup cool completely, then store it in airtight containers in the fridge for up to 5 days. For longer storage, freeze the broth (without rice) in quart-sized bags for 3 months. When reheating, warm gently on low heat with a splash of water to restore that creamy consistency. The rice can be reheated separately if needed.
How do I know when the pork bones are done?
The bones are ready when they're tender and easily separated with a spoon after 2 hours of simmering. You'll also notice the broth turns a rich amber color and develops a sweet, marrow-rich aroma. If you're unsure, check one bone by breaking it open—if the marrow slides out easily, it's perfect.
Can I use chicken or beef bones instead?
While pork bones give the best flavor and gelatin content, you can use chicken bones (for a lighter broth) or beef marrow bones (for deeper richness). The simmering time may vary—chicken bones typically need 1.5 hours while beef bones may take 3 hours. Just adjust the cooking time until the bones are tender and the broth develops that signature depth.
