The Best Cinnamon Rolls {Extra Moist, Soft, and Fluffy}

12 servings


35 minutes

active time

2 hours 30 minutes

total time


25 g bread flour

125 g full-cream milk

2 large eggs ((each weighing 60 - 63 g/ 2 - 2.25 oz still in its shell)Note 1 )

125 g full-cream milk

455 g bread flour

2½ tsp instant yeast

100 g sugar

1 tsp salt

115 g melted butter

300 g brown sugar

2½ tbsp ground cinnamon

1 tsp ground nutmeg ((optional, but highly recommended))

115 g unsalted butter ((softened at room temperature till almost melty))

125 ml heavy cream

170 g full-fat cream cheese (at room temperature (I use Philadelphia's))

75 g unsalted butter (at room temperature)

⅛ tsp salt

1 tsp vanilla or lemon extract

200 g confectioner's or powdered sugar


Lightly grease a 9" x 13" x 2" (23 x 33 x 5 cm) baking pan.

Make the roux (tangzhong)

In a small saucepan, whisk together bread flour and milk until free of lumps. Cook it over medium heat, stirring continuously until the mixture thickens like a pudding, 3 to 5 minutes. Note: The roux is ready once the whisk leaves drag lines on the base of the pan, or when an instant-read thermometer reaches 65°C (149°F). Do not overcook.

Scoop the roux into a mixing bowl. Let it cool for a bit, 15 minutes at room temperature or quicker in the chiller, as long as it’s not hot.

Make the main dough

Whisk the eggs and remaining milk into the cooled roux until the mixture is free of lumps. (Note: If using active dry yeast in place of instant yeast, only whisk the eggs into the cooled roux, and use the milk to activate the active dry yeast in the next step).

In a stand mixer, combine 455 g / 16 oz of bread flour (save the balance and only add as much as you need to if needed later), instant yeast, sugar, and salt. Give it a good stir to mix well. Note: If using active dry yeast, sprinkle over the remaining milk that’s slightly warmed to 40°C /110°F (anything hotter than 46°C/115°F will kill the yeast). Allow the yeast to activate - it will look frothy and smell yeasty - a good sign! This may take about 5 to 7 minutes, depending on the temperature of the milk. Add this with the roux mixture and melted butter in the next step.

Add the roux mixture and melted butter. Paddle the mixture on low speed until barely combined. Then let the mixture sit for 5 minutes to allow the flour to absorb the liquids.

Scrape the dough off the paddle and switch it out for a dough hook. Start the mixer at medium speed and knead until the dough becomes smooth and elastic and starts to pull away from the sides of the bowl, about 5 -7 minutes. Important tip: The dough should feel tackyNote 4 and leave the sides of the bowl mostly clean with bits still sticking to the sides, but the dough will stick to the bottom - this is OK! Do not be tempted to add more flour at this point. If you touch the dough and bits of it stick to your fingers, this is the time to add a bit more flour, 1 - 2 tbsps at a time, and knead it in for a minute to allow the dough to absorb it, and check again. Stop when it feels sticky but you can pull away your fingers cleanly.

Test for 'windowpane': Lightly grease your fingers and palms with some oil, take a small ball of dough and gently stretch it. The dough is ready for proofing when it can be stretched to a thin, translucent layer (‘windowpane’) without breaking. Otherwise, knead for a few more minutes and test again.

First rise: Gather the dough into a ball and place it in a large greased mixing bowl. Cover with a clean tea towel and place in a warm area. Let it rise for 25 - 30 minutes or until doubled in volume.

Make the cinnamon roll filling

While the dough is proofing, stir together brown sugar, ground cinnamon, and ground nutmeg in a large mixing bowl until well mixed. Mix in the softened butter with a spatula until well combined.Alternative method: Mix together brown sugar, cinnamon, and nutmeg, but leave out the butter.

Make the rolls

Roll out the dough: Once doubled in volume, overturn the bowl to tip out the dough. Lightly flour the countertop (or a pastry mat) and rolling pin. Roll the dough into a rectangle measuring 24" x 15" (60 x 38 cm). Note: The dough will be thin when rolled flat to the suggested size - this is OK. You also don't need to be exact here - so long as you get a good rectangular size to work with.

Spread the filling: With a rubber spatula, spread the cinnamon roll filling over the rectangular dough, leaving 0.5"/1-cm on one of the long edges clean. Brush this clean edge with some water to help seal the end when you complete the roll.Alternative method: Spread the softened butter all over the dough with a rubber spatula, leaving 0.5"/1-cm on one of the long edges clean. Then sprinkle the cinnamon mixture, covering the butter evenly. Brush the clean edge with water.

Shape into rolls: Starting on the long edge, roll up the dough tightly, Swiss-roll style. Cut a bit off both ends of the roll. Then cut into 12 rolls. Tip: Use a sharp, non-serrated knife or dental floss. To get 12 equal rolls, cut the long roll into two halves. Again, halve each of the 2 rolls so you now have 4. Then cut each of the 4 rolls into 3 equal rolls, so you end up with 12.

Second rise: Place the rolls in a greased 9" x 13" x 2" (23 x 33 x 5 cm) baking pan, spacing them a bit apart. Cover with a tea towel and proof in a warm place for 20 - 25 minutes.

Bake the rolls

While the rolls sit, preheat the oven to 190°C (374°F) Optional: Just before putting the rolls into the oven, warm the heavy cream in a saucepan over low heat. Heat only until the chill is off - not to the point of simmering/boiling. Pour over the top and all around the rolls. Allow the cream to soak in for 1 minute.

Bake on the middle rack for 20 - 22 minutes or until the rolls have turned golden brown and the center ones are cooked through. Once out of the oven, let the rolls cool completely in the pan. Note: Baking times will vary, depending on the size of the rolls, the type and size of baking pan used, how the rolls are packed in, the type of oven, etc. Check at the 20-minute mark and if the rolls are not all baked through, extend the baking time by 3 - 4 minutes.

Make the cream cheese frosting

In a stand mixer fitted with a paddle or using handheld beaters, beat softened cream cheese and butter at medium speed until smooth, about 30 seconds.

Beat in the salt (omit if using salted butter), vanilla extract or lemon juice, and icing sugar. until smooth, about 1 minute. Set aside.Note 3

Frost the cinnamon rolls

Spread the cream cheese frosting over the cooled rolls (I personally like the frosting a bit melty and spread them over slightly warm, not hot, rolls so it melts into the gaps in between the folds. For a thicker finish, set aside some frosting to spread over the rolls once more when they've completely cooled.)

Store the rolls

Store leftover rolls in an air-tight container or wrap individual slices tightly in cling wrap. Frosted cinnamon rolls keep well at room temperature for 3 days, in the chiller for a week, and in the freezer for up to a month.

12 servings


35 minutes

active time

2 hours 30 minutes

total time
Start Cooking