Japanese milk bread -- shokupan -- is the softest loaf you can bake at home: a fine, cotton-soft crumb that tears into wisps and stays pillowy for days. The secret is tangzhong, a quick cooked paste of flour and milk that pre-gelatinizes some of the starch so the dough holds more water without turning slack. Mix an enriched dough with the cooled tangzhong, shape it in three strands, proof until it crowns the pan, and bake at 350F to a glossy golden top. It stays soft 4 to 5 days at room temperature.
Japanese milk bread — baked as a square pullman loaf, it is called shokupan — is the softest yeasted bread you can make at home. The crumb tears into cotton-like wisps. The crust is thin and tender, more membrane than shell. A fresh slice compresses to half its height under gentle pressure, then springs back completely. It is the bread behind the pillowy sandwiches of a Tokyo convenience store, Chinese bakery buns, and the cloud-like loaves that have made their way into every serious Western bakery in the last decade.
What sets the Japanese version apart is a technique perfected across East Asian bakeries: tangzhong, a cooked paste of flour and milk that gets stirred into the dough. It sounds like a minor tweak, but it changes the bread fundamentally. Tangzhong pre-gelatinizes a portion of the starch before mixing, which traps significantly more moisture during baking. The result is a loaf that’s softer out of the oven, stays softer longer, and has a texture that regular enriched bread can’t match.
Total time is about 4 hours, with most of that being hands-off rising. The tangzhong takes 3 minutes to make.
What Makes It Japanese Milk Bread
Shokupan (the name means “eating bread” or, loosely, loaf bread) is the everyday sliced bread of Japan — but the everyday standard there is a fine, springy, milk-enriched crumb that a Western pan loaf rarely reaches. It is baked either with a lid on the pullman pan for a flat, square top (the shape used for tidy sandwiches) or lidless for the domed “mountain” shape called yamagata. Either way, the dough is enriched with milk, a little butter, sugar, and egg, and built on tangzhong for that signature fluff.
The other signature is the shaping. Instead of one mass, the dough is divided into three pieces, each folded and rolled into a tight cylinder and set side by side in the pan. As they proof and bake, the three coils rise into each other and fuse, giving milk bread its defining pull-apart structure — you can tear the finished loaf into distinct, cottony sections.
Why Tangzhong Makes It Soft
Tangzhong is a water roux: flour cooked with liquid to about 65C (149F), right in the middle of the wheat-starch gelatinization range. At that temperature the starch granules swell and burst, forming a thick paste that holds several times its weight in water. Stirred into the dough, that pre-gelatinized starch lets the loaf carry more total moisture without feeling wet or slack, traps water in a gel that turns to steam in the oven for a tender crumb, and resists the starch re-crystallization (retrogradation) that stales bread — so shokupan stays soft for 4-5 days instead of the 2-3 you get from a standard enriched loaf.
That is the short version, and it’s all you need to bake this bread. For the full starch science, the exact temperature window, and how to trouble-shoot a gummy or under-gelatinized roux, see our deep dive on the tangzhong method.
The Recipe
Yield: 1 pullman loaf (9x4 pan) or 1 standard loaf pan
Tangzhong (make first)
| Ingredient | Weight |
|---|---|
| Bread flour | 25g |
| Whole milk | 125g |
Combine flour and milk in a small saucepan. Cook over medium-low heat, whisking constantly, until the mixture thickens to a paste and reaches 65C (149F). This takes 2-3 minutes. It should look like thick pudding and leave tracks when you drag a spatula through it. Transfer to a bowl, press plastic wrap directly onto the surface (prevents skin formation), and let cool to room temperature. Can be made up to 24 hours ahead and refrigerated.
Main Dough
| Ingredient | Weight | Baker’s % |
|---|---|---|
| Bread flour | 375g | 100% |
| Whole milk, warm (90-95F) | 120g | 32% |
| Tangzhong (all of it) | 150g | — |
| Egg | 50g (1 large) | 13% |
| Sugar | 40g | 11% |
| Salt | 8g | 2% |
| Instant dry yeast | 5g | 1.3% |
| Unsalted butter, softened | 40g | 11% |
Total flour: 400g (375g in main dough + 25g in tangzhong) Total liquid: 245g milk + 50g egg = 295g Effective hydration: ~67% (counting all liquids against total flour, excluding butter). The tangzhong’s pre-gelatinized starch absorbs a disproportionate share of that moisture, so the dough feels drier and more manageable than that percentage suggests.
Try It Yourself
The Baker's Bench
Want to scale this shokupan to two pans or a taller pullman? The Baker's Bench keeps every weight and the tangzhong ratio intact.
Open ToolEquipment
- Kitchen scale
- Small saucepan and whisk (for tangzhong)
- Probe thermometer
- Stand mixer with dough hook
- 9x4-inch loaf pan (or 9x5 standard)
- Plastic wrap
Method
Step 1: Make the Tangzhong
This should be done before mixing the main dough — it needs to cool to at least room temperature. See the tangzhong section above.
Step 2: Mix the Main Dough
Combine flour, sugar, yeast, and salt in a stand mixer bowl. Add the warm milk, egg, and all of the cooled tangzhong. Mix on low speed for 3 minutes until a shaggy dough forms.
Switch to medium speed and mix for 5 minutes until the dough starts to come together and pull slightly from the bowl.
Add butter: With the mixer on medium-low, add the softened butter in 3-4 additions, waiting until each piece is mostly incorporated before adding the next. This follows the same principle used for brioche — butter goes in after initial gluten development. Adding fat too early coats the flour proteins and prevents gluten from forming properly.
Once all butter is incorporated, increase to medium speed and mix for another 5-7 minutes. The dough is ready when it’s smooth, soft, slightly tacky, and passes a moderate windowpane test. It should feel like a baby’s earlobe — that level of softness.
Step 3: Bulk Fermentation (1.5-2 hours)
Place the dough in a lightly oiled bowl, cover, and let rise at room temperature (75-78F) until doubled. About 1.5-2 hours. The sugar in this dough feeds the yeast aggressively, so it may rise faster than you expect. One gentle fold at the 45-minute mark helps distribute gas evenly.
Step 4: Shape for the Pan
Turn the dough out onto a lightly floured surface. Divide into 3 equal pieces (about 270-280g each for a 9x4 pan).
For each piece:
- Press or roll into a rough rectangle about 8 inches wide and 6 inches tall.
- Fold the top third down to the center, then the bottom third up over it — like folding a letter.
- Turn 90 degrees and roll into a tight cylinder the width of your pan.
- Place seam-side down in a greased loaf pan.
Repeat for all three pieces, placing them side by side in the pan. This three-piece method creates the signature pull-apart structure of milk bread — each piece rises against the others, creating defined sections you can tear apart.
Step 5: Final Proof (45-60 minutes)
Cover the pan and let rise until the dough crowns about 1 inch above the rim of the pan. This takes 45-60 minutes at room temperature. The dough should feel pillowy and jiggly when you gently nudge the pan. Don’t over-proof — if the dough starts to collapse when you nudge it, bake immediately.
The poke test works here: press a floured finger gently into the surface. It should spring back slowly but not completely, leaving a shallow indent that fills in partway.
Step 6: Bake
Preheat oven to 350F. This is lower than lean bread temperatures — enriched doughs bake at 380F per professional standards, and this particular bread benefits from the lower end of that range because the sugar and milk solids brown quickly.
Optional: brush the top with an egg wash (1 egg beaten with 1 tablespoon milk) for a glossy, golden crust.
Bake at 350F for 30-35 minutes. The top should be golden brown. If it’s browning too quickly, tent loosely with foil for the last 10 minutes. Internal temperature should read 190-195F.
Remove from the pan immediately and cool on a wire rack. If you leave it in the pan, steam condenses on the bottom and produces a soggy, gummy base.
Tangzhong Milk Bread vs. Regular White Bread
Same effort, dramatically different results
| Property | Regular White Bread | Tangzhong Milk Bread |
|---|---|---|
| Texture | Soft but slightly dry | Cotton-soft, pillowy, pulls into wisps |
| Moisture Retention | Moderate -- standard starch holds water normally | High -- gelatinized starch traps water in a gel matrix |
| Shelf Life (room temp) | 2-3 days peak freshness | 4-5 days peak freshness |
| Staling Rate | Normal retrogradation | Slower -- gelatinized starch resists re-crystallization |
| Crumb Structure | Even, fine, slightly firm | Ultra-fine, stretchy, compresses and springs back |
| Extra Effort | None | 3 minutes to cook the tangzhong |
Both recipes use similar hydration levels -- the difference is what the starch does with the water.
Tangzhong vs. Regular White Bread
The difference between Japanese milk bread and standard white sandwich bread is dramatic in texture and shelf life, but subtle in effort. You’re adding one 3-minute step — cooking the tangzhong — and getting a fundamentally different loaf.
Regular sandwich bread at 65% hydration produces a crumb that’s soft but slightly dry, with a 2-3 day window of peak freshness. The starch retrogrades at the normal rate, and by day three the bread feels firm and stale even if it hasn’t dried out — retrogradation is starch re-crystallization, not moisture loss.
Milk bread with tangzhong at the same effective hydration produces a crumb that’s cotton-soft, almost pillowy, with a 4-5 day window of peak freshness. The pre-gelatinized starch holds its water in a gel matrix that resists retrogradation. The bread stays soft because the water stays put.
The enrichments help too. The butter in the dough coats starch granules and slows re-crystallization. The egg proteins add structure without stiffness. The milk sugars (lactose) add tenderness and promote browning. But the tangzhong is the primary driver of the texture difference.
Variations
Chocolate babka-style: Roll the dough into a large rectangle, spread with chocolate ganache, roll up tightly, twist into a figure-8, and bake in a loaf pan. The soft, enriched milk bread dough is ideal for this.
Cinnamon swirl milk bread: Roll flat, spread with butter-cinnamon-sugar, roll into a cylinder, place in pan. The tangzhong keeps the swirl layers moist and distinct.
Dinner rolls: Divide the dough into 12 equal pieces (about 68g each), shape into tight balls, and place in a greased 9x13 baking dish. Proof until touching, bake at 350F for 20-22 minutes. Brush with melted butter out of the oven. For a dedicated recipe, see our dinner rolls.
Stuffed buns: Divide into 8 pieces. Flatten each, fill with red bean paste, custard, or seasoned pork, pinch closed, proof seam-down. Bake at 350F for 15-18 minutes.
Storing Milk Bread
Milk bread stores better than almost any other homemade bread. At room temperature in a sealed plastic bag: 4-5 days with minimal texture change. The tangzhong’s moisture-trapping gel, combined with the butter and sugar that slow retrogradation, gives this bread a shelf life closer to commercial sandwich bread than typical homemade loaves.
Do not refrigerate. The refrigerator (2-4C) is the temperature zone where starch retrogradation is fastest. Bread goes stale faster in the fridge than at room temperature. If you won’t eat it within 5 days, freeze it. See our bread storage guide for the full science.
Freezing: Slice first, then freeze in a sealed bag with parchment between slices. Toast directly from frozen. Keeps 2-3 months.
Troubleshooting
Bread is dense, not fluffy: The dough was under-proofed (didn’t crown above the pan) or over-mixed (gluten too tight). Let the dough rise until at least 1 inch above the pan rim. Also check that the tangzhong was properly cooked to 65C — undercooked tangzhong doesn’t gelatinize and provides no moisture benefit.
Top is too brown, inside is raw: Oven too hot. Use 350F, not higher. The sugar and milk solids in this dough brown faster than lean bread. Tent with foil if the top browns before the interior sets.
Dough won’t come together after adding butter: The butter was too cold or added too quickly. Butter should be soft (not melted, not cold) and added in small pieces after the dough has already developed some gluten structure. Be patient — it looks broken before it comes together.
Bread dried out after 2 days: The tangzhong may not have been cooked properly. It needs to reach 65C and thicken to a paste. If it’s still liquid or grainy, the starch hasn’t gelatinized. Also ensure you’re storing in a sealed plastic bag, not a paper bag (paper wicks moisture away).
Gummy layer at the bottom: Left the bread in the pan too long after baking. Remove immediately and cool on a wire rack so steam can escape from all sides.
Frequently Asked Questions
- What is Japanese milk bread (shokupan)?
- Shokupan is the everyday sliced loaf of Japan, but made to a much softer standard than a Western sandwich loaf -- a fine, springy, milk-enriched crumb. It is baked in a pullman pan, either lidded for a flat square top or lidless for a domed 'mountain' (yamagata) shape, and enriched with milk, butter, sugar, and egg. Most modern recipes, including this one, build it on a tangzhong water roux for the signature cotton-soft, pull-apart texture.
- What is tangzhong and why does it make bread softer?
- Tangzhong is a water roux -- flour cooked with liquid to 65C (149F), which gelatinizes the starch. Pre-gelatinized starch absorbs and holds significantly more water than raw starch. When added to bread dough, it allows the bread to contain more total moisture without feeling wet or slack. During baking, that trapped moisture creates steam inside the crumb for a softer texture. The gelatinized starch also resists retrogradation (the starch re-crystallization that causes staling), keeping the bread soft for 4-5 days instead of the usual 2-3.
- Can I make tangzhong with water instead of milk?
- Yes. Water-based tangzhong works the same way -- the starch gelatinization happens regardless of the liquid used. Milk adds richness, browning (from lactose), and tenderness to the final bread, but if you need a dairy-free version, substitute water or plant milk in the tangzhong and use plant milk in the main dough as well. The texture benefit from pre-gelatinized starch is identical.
- Why does my milk bread brown so fast on top?
- Milk bread contains sugar, milk solids (lactose), and egg -- all of which promote Maillard browning at lower temperatures than lean bread. Bake at 350F, not higher. If the top is browning before the interior is set (internal temp below 190F), tent loosely with aluminum foil for the last 10 minutes of baking. An oven thermometer helps verify your actual oven temperature.
- What is the difference between milk bread and brioche?
- Both are enriched, but the fat content is dramatically different. Brioche contains up to 50% butter relative to flour weight -- nearly equal parts butter and flour. Milk bread has about 10-11% butter. Brioche is rich, heavy, and cake-like. Milk bread is soft, light, and fluffy. The tangzhong method amplifies milk bread's softness without adding more fat. Brioche relies on sheer butter quantity for its texture; milk bread relies on the starch gel.


