This post may contain affiliate links
Add Bake with Zoha as a preferred source on Google and find more of my tried-and-tested recipes.
If you’ve never had homemade gulab jamun before, this recipe is about to change your life! They’re SO much better than ready made gulab jamun, and unbelievably easy to make in just one hour start to finish. This recipe cuts down the effort significantly by using milk powder instead of traditional milk solids (“khoya”), but still delivers the perfect gulab jamun: beautifully golden brown with a caramel-y toasted milk flavor, pillowy soft and juicy right to the middle, and not too sweet! This is the family recipe I grew up with in Pakistan, and is guaranteed to blow everyone’s mind, whether you serve it for Eid, Diwali, or a post dinner sweet treat.

These were incredible, Zoha! Reminded me of Gulab Jamuns back home, except, dare I say it… these were BETTER.
– Manha, ★★★★★
My 3 secrets for the perfect gulab jamun
After making this recipe countless times, I’ve learned that there are 3 secrets that result in the perfectly soft and juicy gulab jamun every single time:
- Adding an egg to the dough. I know this isn’t typical in most gulab jamun recipes, but I’ve found that adding an egg helps with structure and binding, prevents the balls from falling apart, and prevents them from absorbing too much oil while frying. However, if you don’t consume eggs, you can replace it with milk (about 3 1/2 tbsp)
- NOT kneading the dough! Shocking, I know, but trust me on this one! The dough has a lot of fat in it from the ghee, cream and milk powder. If you over handle it, it starts to “leak” oil, crack and is harder to work with. Kneading also develops gluten which can give gulab jamun a tougher texture. The key is to use a spoon to bring the dough together, mixing just until it’s smooth and starts to pull away from the edges of the bowl. Then chill until it’s semi-firm and you’ll have perfectly pliable dough you can gently form into smooth balls
- Getting the oil temperature just right. This is probably the single most important thing! If the oil is too hot, the gulab jamun will cook on the outside before they fully puff up, resulting in hard centers. If the oil is too cold, they will take too long to cook and fall apart. I recommend keeping the oil temperature between 310-320F

Step by step photos
These gulab jamun come together in 3 simple steps (full detailed instructions are in the recipe card below):
1. Make the dough balls






2. Fry the gulab jamun


3. Soak the gulab jamun


Then you’re ready to serve and enjoy! Personally, I love serving them warm right after a hearty Pakistani meal, like my tandoori chicken star bread or spicy Karachi biryani!

A few more tips!
Here are a few more helpful tips before you make this recipe:
- Use a kitchen scale instead of measuring cups. This will yield the most accurate results
- Also use a scale to ensure all dough balls are the same weight. This will ensure they all cook evenly at the same time (and it’s so fun to see the perfect balls!)
- Refrigerate the dough if it feels too sticky to work with. Just a few minutes will make it much easier to shape without over handling
- Fry one test gulab jamun first. This is a really helpful way to check if the oil is at the right temperature, and how long you need to cook them! It should take around 3-4 minutes to take on a deep golden brown color, and should at least double in size
- Be gentle with the balls while frying and soaking. They can crack and break easily!
- Don’t overcook the syrup. You need to cook only until the sugar has dissolved and it starts to simmer

Video Tutorial
Email This Recipe
Enter your email and I’ll send this directly to you. Plus you’ll get new recipes from me every week!
Ingredients
Dough balls:
- 1 cup full fat milk powder (100g) – I recommend Nido whole milk powder
- 3 tbsp all purpose flour (30g)
- 1 1/2 tsp baking powder
- 1 large egg – or substitute 3 1/2 tbsp whole milk
- 3 tbsp heavy cream (40g)
- 2 tbsp melted ghee or unsalted butter (30g)
Frying:
- Neutral oil to fry (~2″ deep in frying pan)
Soaking syrup:
- 1 1/4 cups water (300g)
- 1 cup granulated sugar (200g)
- 2–3 cardamom pods
- Optional: saffron and rose water if desired
Instructions
Dough balls:
- Mix the milk powder, flour and baking powder in a bowl and get rid of any lumps
- Separately whisk together the melted ghee, egg and cream until smooth
- Pour the wet ingredients into the dry ingredients, and use a spoon to mix them together. Use a press and swirl motion, getting rid of any lumps, until a shaggy dough forms that starts to pull away from the edges of the bowl. This should take 60-90 seconds only. Do not over-knead or overwork the dough. It’s fine for it to be soft and sticky
- Refrigerate the dough for 10-20 min until it is semi-firm and easy to shape. During this time, you can start heating the oil for frying as instructed below
- Once chilled, divide the dough into 15 equal pieces, about 16g each. I recommend a scale to ensure all pieces are the same weight
- Lightly rub some ghee or oil onto your palms and fingers. Working one piece at a time, roll the pieces gently between your palms, applying light pressure at first to make them smooth and crack-free. Then release the pressure and rotate your palms in opposite directions, with the ball in between, to make them into perfect spheres. This should be quick, and easy; avoid over working the balls as that can cause them to crack. If the dough feels too sticky during this process, place it back in the fridge for a few minutes
- Once all balls have been shaped, you can place them into the fridge while the oil heats up
Frying:
- While the dough is chilling, you can start heating the oil in a wok or large saucepan – make sure it’s at least 2″ deep. Heat it to ~310-320F on medium-low heat. At this temperature, if you drop a small piece of dough into the oil, it should take a few seconds to rise to the surface with some bubbles around it (not immediately)
- I always recommend frying 1 test gulab jamun first. Add one ball gently into the oil, and use a steel spider to gently swirl it around continuously. It should almost double in size, develop a deep golden brown color and be fully cooked through after 3-4 minutes. If it colors too quickly or starts to burn, the oil is too hot. If it takes longer to get color or starts to fall apart, the oil might be too cold
- Now fry the rest of the gulab jamun in 2-3 batches (I do 5 at a time to avoid overcrowding the pan). Keep gently swirling them so they get an even color all over, and fry for 3-4 minutes until golden brown. Place on a paper towel to drain
Soaking in syrup:
- While you’re frying the gulab jamun, you can work on the syrup alongside. Add the sugar, water and cardamom pods for the syrup into a large saucepan. Place on the stove on low heat, and stir occasionally. Cook only until the sugar has dissolved and the syrup starts to simmer. Then turn off the heat and cover with a lid
- By the time the balls are done frying, the syrup should still be hot. If not, turn on the heat to bring it to a simmer again, and turn it off. Gently drop all the balls into the syrup, and swirl the saucepan around a few times to encourage all sides of the gulab jamun to get soaked
- Cover with a lid and rest for at least ~20 minutes, or until the gulab jamun have soaked up nearly all of the syrup and almost doubled in size. I like to gently swirl the pan once more halfway through the soaking process
- Serve and enjoy!
Notes
- Make ahead and storage: You can prepare the gulab jamun ahead of time, and keep in an airtight container at room temperature for up to 1 day, or in the fridge for up to 5 days. I recommend warming up in the microwave to serve


Comments
Anaya
Saw these on Zoha’s instagram story and it looked so good – I made it the next day and it did not disappoint! So delicious and so easy. I am obsessed with all of her recipes. Never been disappointed with any. Thank you and keep publishing more!
Zoha Malik
AWW you made my day! Thank you!!
Fathima Shazna
Soon after frying the gulab jamun, we need to add it to the syrup.
Zoha Malik
Yes
Harbinder
WOW!
I have tried a number of gulab jamun recipes from various cooks online and found faults in all of them. Your recipe is authentic and tastes just as good if not better than gulab jamun purchased from an Indian Sweetshop.
This recipe is a keeper and will be used over and over.
Thanks for sharing x
Zoha
You made my day, thank you so much! I am glad the gulab jamun came out perfectly for you
Hafss
Hey,I’m fascinated by the look of this and I really wanna try this!
btw, I’d like you to tell me if I could replace the heavy cream with something else as it’s difficult for me to find heavy cream in my city,I’m from Sri Lanka 🇱🇰.Thanks for your amazing recipes!
Zoha Malik
Any kind of dairy cream will do!
John Wick
THIS IS THE WORS-nah I’m just kidding this is a great recipe.
Can I substitute ghee for butter?
Zoha
hahahaha. Yes, butter will be ok 🙂
Nazia
Such a good recipe! Taste amazing and easy to follow instructions that made it so simple to make. Thank you.
Zoha
My absolute pleasure!
Fatimah Siddiqui
Ahlan,
Born in Pakistan out of an Iraqi mother and a Yemeni father (go figure), but now living in Europe, I have a soft spot for this land and all that comes from it. It is fun just to walk through your website and merely read the recipes even before trying any of them. Thank you.
Ma’ al salaama,
Fatimah.
Zoha
I am so happy you found your way here! Sending love to you and your family. <3
CJ
HELLO ZOHA FIRST TIME CAME ACROSS YOUR SITE – I WOULD LIKE TO TRY THESE WITHOUT EGG IF YES HOW PLEASE – THANK YOU
Ray
I am not normally one to venture out to write a review, but Oh My for this recipe! Outstanding recipe to say the least! I tried them for a family gathering, they were an absolute hit! Definitely a recipe to keep on my list for a long time! Thank you so much for sharing such an amazing recipe!
Asiya H
Fantastic recipe. Thank you so much.
Zoha
Thank YOU!
Hunter
how long does it take overall if your new to cooking zoha
Hena
Hi!
I was wondering if I wanted to use store bought khoya, would the ratios stay the same? 100g khoya in place of 100g milk powder?
Thanks!
Zoha
No Hena – that would become a different recipe 🙂
Nadia
Thank you for sharing this amazing recipe. I’ve tried other recipes, but this is the best one. I have one question, my gulab jamans tasted a bit salty in the middle, why do you think that happened?
Zoha
Hi Nadia! Thank you so much. It’s likely because the syrup did not soak all the way to the middle. Try soaking for longer and make sure your syrup is not thick when you add the gulab jamun to it
Aman
Best recipe!
Zoha
Thank you Aman!!
Lei
What is the ratio of the rose water is you decide to add some? Since there a measurement for the regular water? Do you reduce it and use rose water in addition or there’s a separate measurement for it?
Zoha Malik
Hi Lei! I would recommend adding a small amount to the syrup (e.g., 1 tbsp), tasting and adjusting. It comes down to your preferences.
Syeda Farwa Fatima
I’ve always wanted to make gulab jamun at home but thought it’s too hard and I’d be disappointed if it didn’t come out right. I tried them last night for Eid and I was amazed how easy they were to make and how tasty they turned out with the right level of sweetness. I live in Seattle and it’s hard to find fresh gulab jamun but I know I can just make them at home with your recipe, thank you so much for sharing! Prayers for you and your mom!
Zoha
AWWW thank you so so much!! Sending you so much love and duas <3
Aman
Eid Mubarak!
Made these today for Eid for the first time. They are a hit with my family! Easy, fool-proof recipe. I quadruped the recipe, so glad I did! Sharing with friends now. Thanks for sharing this recipe!
Zoha
Eid Mubarak! This made my day. Thank you so much!
Zara
Hi Zoha, what size egg did you use?
Zoha
Large!
Alishba
Hello Zoha, I am writing to ask if I could use your recipe in a cookbook my class and I are making. A group of 7th-grade kids from Thaden school are putting together food recipes we cherish. About 50 kids in our grade will present and publish recipes of their own, and we hope to include yours. I chose to make your delicious Gulab Jamun. I will cite your recipe, giving you full credit for your creation. May I use your recipe for our book?
Thank you, – Alishba K. Ali
Zoha
Hi Alishba! Yes please go ahead and thank you for asking <3
Alishba
Thank you so much!
Svetllkh
Novyny
Kulsum
salam Zoha !!
veryyy much temted to try this recipe ASAP
I just had one question . how much does one large egg weight because some say 58grm with shell or 60 grm and i always get confused please guide ! i will be eagerly waiting fir your reply please
Zoha Malik
It is 50g without the shell x
Zeenat Barlas
This is so easy and real thanks alot for posting it,I don’t have to buy gulab jamon from bazar anymore ❤️??
Zoha
Wow, what a massive compliment! Thank you!
Sana
These were so wonderful and deceptively easy! They were such a pleasure to eat fresh and warm after the recommended 30 minute soaking period, but I have a preference for cold gulab jamun, so they were even better to me after sitting overnight in the fridge. They were just firm enough and tasted perfect, like I bought them from a shop. Definitely make these asap!! Thanks Zoha for the perfect recipe, I can’t wait to make them again.
Dr Haleema Saadia Aqib
zoha, all your recipes are pure ❤️.
Just let me know if I want to skip melted ghee can I replace it with cream ?
Zoha
Hi Dr Haleema! I don’t recommend making that substitution as the result won’t be the same 🙂
Zoha
Hi Sana! Your praise means a lot to me, as I know people are very particular about gulab jamun 🙂 Thank you for trying my recipe and I am so happy it worked out for you!
Mun
Amazing recipe. It’s very similar to my mother’s, but I always found hers to be too sticky and I would keep adding flour, so the balls would be dry. The back of putting it in the fridge helped a LOT.
Also, the syrup is very very good – sweet but not sickeningly so.
I added a bit of kewra water to the syrup too.
10/10, I shared it with my Pakistani friend and she said it was like a professional made it
Zoha Malik
Thank you so so much! You made my day!