Last monsoon, I fried a batch of vegetable pakora for chai and had half a bag of besan (gram flour) left on the counter. My mother-in-law called that evening with a simple suggestion: roast what is left with ghee and turn it into halwa. Twenty minutes later the whole kitchen smelled nutty and sweet, and my kid wandered in asking for “the yellow one in the bowl.”
Besan halwa is that bowl. Gram flour slow-roasted in ghee until deep golden, then loosened with warm milk and water, sweetened, and finished with cardamom and nuts. It is soft, glossy, and comforting in a way that feels both everyday and special. You can serve it as prasad, tuck it into a festival sweets tray, or spoon it warm on a cold night when you want something ready in about thirty minutes. Let’s make it together.

What Is Besan Halwa?
Besan halwa (also called besan ka halwa, besan sheera, or besan da kada in some Punjabi homes) is a classic North Indian sweet made from chickpea flour. The flour is cooked in ghee until it turns fragrant and caramel-colored, then liquid and sugar are stirred in to make a thick, spoonable pudding.
You will find it at Gurudwaras and temple prasad tables, at Diwali mithai spreads, and in home kitchens when someone wants a quick restorative dessert. It is naturally gluten-free because besan comes from chana dal, not wheat. That same besan bag that makes crispy pakora can flip to dessert without a special shopping trip.
If you are building a sweets menu, pair bowls with easy rice kheer with millet swaps for a creamy contrast, or offer kesar badam chia pudding for a cool, make-ahead option on the same table.
Why You’ll Love This Recipe
- Pantry-friendly: besan, ghee, sugar, milk, and cardamom are staples in most Indian kitchens
- Clear roast cues: color, aroma, and timing so the halwa never tastes raw
- Lump-free method: warm liquid added in a steady stream while you whisk
- Naturally gluten-free: ideal for guests who avoid wheat (always check your besan label)
- Festival-ready: small-batch friendly for prasad or a Diwali tray alongside burfi and ladoo
From my kitchen: The first time I pulled the pan off too early, the halwa looked fine but tasted faintly of raw flour. Now I wait until the besan is the color of peanut butter and my whole house smells like toasted nuts. That extra two minutes changed everything.
Nutrition Highlights
Besan brings more protein and fiber than refined dessert flours, plus iron and magnesium that matter in vegetarian diets. It is not a medicine, but a warm bowl on a chilly evening feels nourishing in the way classic comfort sweets do. For more iron-forward vegetarian ideas beyond dessert, browse our iron-rich vegetarian recipes roundup.

Expert Tips for the Best Texture
Pre-warm the liquid so the besan does not seize when cold milk hits hot flour.
Keep heat low during roasting. Patience beats high flame every time. Besan burns in seconds if you walk away from the pan.
Roast color is everything: under-roasted besan is the main reason halwa tastes raw. Deep golden color and nutty smell beat the clock.
Lumpy halwa fix: press lumps against the pan wall with a flat spatula, or whisk on low heat for one minute. A splash of hot water can loosen an over-thick batch.

How It Comes Together (Quick Overview)
- Warm milk and water in a small saucepan until steaming.
- Roast besan in ghee on low heat for 14 to 18 minutes until deep golden and nutty.
- Pour warm liquid into the roasted besan while stirring vigorously to prevent lumps.
- Add sugar and cardamom; cook until the halwa pulls away from the pan and ghee shimmers on top.
- Garnish with nuts and serve warm in small bowls.
Full measurements, jaggery swap notes, and storage tips are in the recipe card below.

Besan Halwa
Ingredients
For the halwa
- ½ cup ghee about 100 g; see notes for a lighter option
- 1 cup besan / gram flour 120 g; sifted if lumpy
- 1 cup whole milk
- ½ cup water
- ½ cup granulated sugar 100 g; adjust to taste
- ½ tsp ground cardamom
- Pinch of salt (optional, balances sweetness)
For garnish
- 2 tbsp slivered almonds and pistachios
- Extra ghee, a few drops on top (optional)
Instructions
Warm the liquid
- In a small saucepan, combine milk and water. Heat on medium until steaming and small bubbles form at the edges. Do not let it boil over. Turn off heat and keep near the stove.
Roast the besan
- Place a heavy-bottomed pan or kadai on medium-low heat. Add ghee and let it melt completely.
- Add besan. Stir with a spatula until the flour is coated in ghee and looks like wet sand.
- Reduce heat to low. Stir continuously for 14 to 18 minutes until the mixture deepens from pale yellow to rich golden brown, like peanut butter or caramel.
- Stop when you smell a clear nutty aroma and the besan no longer smells raw.
Add liquid and sweeten
- With one hand, pour the warm milk mixture into the roasted besan in a thin, steady stream. With the other hand, whisk or stir vigorously through the sputtering bubbles.
- Within a minute the halwa should look smooth and porridge-like. Break any small lumps against the side of the pan.
- Add sugar and salt if using. Stir well. Cook on low heat, stirring often, for 5 to 7 minutes until the halwa pulls away from the pan sides and a thin film of ghee shimmers on the surface.
Finish and serve
- Turn off heat. Mix in cardamom powder and most of the nuts, reserving a pinch for topping.
- Serve warm in small bowls. Add a few drops of ghee on top if you like that classic halwa sheen.
Notes
FAQs
Why does my besan halwa taste raw?
The besan was not roasted long enough or the heat was too high, so the outside browned before the inside cooked. Roast on low until the color is deep golden and the aroma is nutty, not floury. Taste a tiny cooled speck if you are unsure.
Can I make besan halwa with only water?
Yes. Replace milk with an equal amount of water for a lighter halwa. You can also use all milk for a richer version. Always add the liquid warm.
Is besan halwa gluten-free?
Pure besan made from chickpeas is gluten-free. Check packaging for cross-contamination notes if you are cooking for celiac guests. This recipe has no wheat flour.
How is besan halwa different from suji halwa?
Suji halwa uses semolina, which is wheat. Besan halwa uses gram flour, so the flavor is nuttier and the texture is softer. Besan needs a longer, slower roast for the same depth of flavor.
Can I make this ahead for a festival?
You can make it a day ahead and reheat gently with a little milk. Fresh halwa on the same day you serve it will have the best aroma, but reheated bowls still comfort a crowd.
How much ghee do I really need?
Classic halwa uses a generous amount because ghee carries flavor and gives that glossy finish. I have made acceptable batches with â…“ cup ghee when the roast is deep and slow. Do not skip ghee entirely or you lose the signature richness.
More Festival Sweets on the Blog
Round out a mithai tray with easy rice kheer with millet swaps, kesar badam chia pudding, and vegetable pakora when you want savory besan on the same menu.
I still think of that rainy pakora afternoon whenever I roast besan for halwa. The savory batch feeds the family first; the sweet bowl finishes the story from the same pantry bag.
If you try this besan halwa, tell me in the comments: do you prefer it extra soft and spoonable, or cooked until the ghee pools on top? Save it for your next festival tray or a quiet chai break, and let me know how your roast color turned out.
Made this? Share a photo and tag @petitepaprika on Instagram. I love seeing your kitchen creations!
