Halwa Puri.
Fried Bread with Semolina Halwa and Chickpeas
حلوہ پوری · Halwa puri · say it: HUL-wah POO-ree
Halwa puri is a three-part breakfast plate: small deep-fried breads that balloon into hollow spheres, a soft saffron-yellow semolina halwa sweet enough to pass for dessert, and a soupy, sour chickpea curry that is not sweet at all. You eat all three at once, tearing off a piece of puri and using it to pick up first the chickpeas and then the halwa, so most mouthfuls land somewhere between sugar and chile. It is Sunday food, bought hot from a shop in a steel pot or cooked at home for a table of people, and it is unapologetically heavy. Nobody schedules much for the afternoon afterwards.


- Gate
PakistanPunjab and Karachi- Prep
- 30 min
- Cook
- 55 min
- Total time
- 1 hr 55 min incl. 30 min rest
- Serves
- 4
- Status
- Medium
- Nutrition / serving · estimated
- Calories 890 kcal
- Protein 19 g
- Carbs 112 g
- Fat 42 g
- Fiber 10 g
- Sugar 38 g
- Sodium 760 mg
Why this recipe works.
- Gives a running order for all three components, so the puris come out of the oil while the halwa and cholay are already warm and waiting.
- Gets the puris to puff reliably — stiff dough, oil instead of dusting flour, a real temperature test and the spoon trick that forces the balloon.
- Uses the ghee-and-water ratio that keeps the halwa soft and spoonable for hours instead of setting into a solid block.
- Keeps the cholay deliberately thin and sour the way breakfast shops make it, rather than turning it into a thick dinner curry.
Ingredients.
30 itemsFor the puris
For the sooji halwa
For the cholay
To finish
Equipment
- Deep, heavy pan or karahi for frying
- Slotted spoon
- Rolling pin
- Heavy saucepan for the halwa
- Medium pot for the chickpeas
Instructions.
Knead the puri dough
Rub the ghee, salt and fine semolina through the flour, then add the warm water in stages and knead for five minutes into a stiff, smooth dough that feels firm under your knuckles and springs back slowly. Cover and leave for 30 minutes.
Tip If it feels soft and pillowy like roti dough, work another two tablespoons of flour in. Stiff is the whole trick.
Boil the chickpeas
Drain the soaked chickpeas, cover them with fresh water in a pot and simmer for 50 to 60 minutes until one crushes to paste between your fingers with no chalky centre. Keep 500 ml of the cooking water and drain the rest.
Tip A pressure cooker does this in about 20 minutes at pressure. Salt them only once they are soft.
Build the cholay masala
Fry the onion in the oil over medium-high heat for 8 minutes until browned at the edges, add the cumin seeds and the ginger-garlic paste and cook for a minute until it stops smelling raw. Stir in the tomatoes, ground coriander, turmeric, chile powder and salt and cook hard until the tomatoes collapse and oil shows at the edge of the pan.
Finish the cholay thin
Add the chickpeas, the reserved cooking water and the anardana, and simmer uncovered for 20 minutes. Crush a ladleful against the side of the pan to cloud the gravy, then stir in the garam masala. It should stay loose enough to run off a spoon — this is a breakfast curry to dip into, not a thick one.
Roast the semolina
In a heavy pan, melt the ghee, add the cardamom pods and then the coarse semolina, and stir over medium-low heat for 10 to 12 minutes until it turns the colour of wet sand and smells like toasted biscuit. Add the almonds and raisins for the last two minutes.
Tip Do not rush this on high heat. Semolina goes from raw to burnt in about forty seconds once it starts colouring.
Cook the halwa
Bring the water and sugar to a boil in a separate pan with the saffron milk, then pour it into the semolina all at once, standing back from the spitting, and stir hard. Cook for 6 to 8 minutes until the mixture pulls away from the sides in one soft mass and ghee glistens on the surface. Keep it warm and covered.
Roll and fry the puris
Divide the dough into 16 balls, oil the counter lightly and roll each into a 10 cm disc of even thickness. Heat the frying oil until a scrap of dough rises and sizzles within two seconds, then slide in one puri, hold it under with the back of a slotted spoon until it inflates, flip once and lift it out after about 30 seconds, when it is pale gold rather than brown.
Tip Fry one at a time. Two puris in the pan drop the oil temperature and both come out flat.
Serve immediately
Stand the puris upright in a colander to drain while you fry the rest. Ladle the cholay into bowls, scatter over the green chile, ginger matchsticks and cilantro, spoon the halwa onto the same plates, and take everything to the table while the puris are still domed.
Tips from our kitchen.
- Knead the puri dough stiffer than roti dough — closer to fresh pasta. Soft dough drinks oil and gives you flat greasy discs instead of hollow balls.
- Roll the puris on an oiled counter, never on dry flour. Loose flour scorches in the oil and turns the whole pot bitter and dark within two batches.
- Test the oil with a scrap of dough: it should sink for a second, then rise and sizzle steadily. Too cool and the puri soaks; too hot and it browns before the inside can inflate.
- Hold each puri under the surface with the back of a slotted spoon for the first three or four seconds. The trapped steam is what forces it to balloon.
- Roast the semolina in ghee until it smells like a toasted biscuit and turns the colour of wet sand. Under-roasted sooji tastes pasty and raw however much sugar goes in.
- Add the hot water to the halwa in one go and stand back, because it spits hard. Trickling it in slowly is how you get lumps.
Substitutions.
- Ghee in the halwa → Unsalted butter, or half butter and half neutral oil
- Butter works but browns faster, so drop the heat a little. Straight vegetable oil makes a halwa that tastes flat and feels slippery rather than rich — of the three components this is the one where ghee genuinely matters.
- Dried chickpeas → Two 400 g tins of chickpeas, drained and rinsed
- Entirely normal at home. Simmer them in the masala for 20 minutes with the water listed so they take on flavour, and mash a spoonful against the pan to thicken the gravy slightly.
- Anardana (dried pomegranate powder) → Amchur (dried mango powder), or a good squeeze of lemon at the end
- The cholay has to be noticeably sour or the halwa flattens it. Any of the three gets you there; anardana also darkens the gravy, which is why shops favour it.
Variations.
- Aloo bhujia on the side
- The fourth bowl most shops add: potatoes cooked soft in a thin turmeric gravy with cumin and green chile, deliberately mild so it sits between the sweet halwa and the sour cholay.
- Puri with atta
- Half wholemeal flour in the dough instead of all white. The puris puff slightly less and taste nuttier, and they hold up better if you are frying ahead for a crowd.
- Kaddu ki bhujia
- A pale, soupy pumpkin curry served instead of the potato, common in Karachi shops. Sweeter than the cholay and often finished with a little dried fenugreek.
Storage & reheating.
Only the cholay survives properly — it keeps three days refrigerated and tastes better on day two, though it thickens as the chickpeas keep absorbing, so loosen it with hot water when you reheat. The halwa keeps two days covered at room temperature and reheats in a pan with a splash of milk, stirred until it goes glossy again; refrigerated it turns firm and grainy. Puris do not keep at all. They deflate within fifteen minutes and are chewy and oily by the next morning, so fry only as many as the table will eat and make more later if people want them.
Serve with
Strong milky doodh patti tea, pickled carrot or chile-and-vinegar relish, and a plate of sliced onion for anyone who finds the halwa too sweet.
The story behind Halwa Puri.
Halwa puri belongs to a specific hour. In Lahore, Rawalpindi and Karachi the shops that sell it open before dawn, work flat out through the morning, and are shuttered and hosed down by noon — you cannot buy halwa puri at four in the afternoon, and asking is a small joke at your expense. Weekday mornings are for tea and a paratha; halwa puri is what a household commits to on a Sunday or a public holiday, usually by sending one person out with a covered pot and a stack of newspaper while everyone else stays in bed.
The plate is a halwai's plate rather than a home cook's. Sweet-makers and their descendants ran these shops, which is why a breakfast in a Muslim-majority country ended up centred on a pan of sugared semolina, and why the frying, the sweet and the curry all happen at one counter. What sits next to the halwa varies by city and by shop: a thin white chickpea curry almost everywhere, often a soft potato bhujia, sometimes a pale, watery curry of bottle gourd or pumpkin, and nearly always a small mound of pickled carrot or a chile-and-vinegar relish to cut through the fat. Some shops add a fourth bowl of nothing but sour gravy for people who want to soak their puris.
People argue about assembly, and the argument is real rather than decorative. One camp keeps the halwa strictly on its own side of the plate and alternates — a savoury bite, then a sweet one. The other tears a puri, loads it with cholay and then adds a smear of halwa on top of that, insisting the whole point is the collision. The one thing nobody argues about is timing: a puri that has been sitting for ten minutes has already deflated into a chewy, oily flap, which is why the shops fry to order and why, at home, the puris are the very last thing you make.
Questions, answered.
Why will my puris not puff up?
Usually one of three things. The dough was too soft, so it stretched instead of trapping steam — knead it stiff, closer to pasta dough than bread dough. The rolling was uneven, and a puri with a thin patch vents its steam through that spot instead of inflating. Or the oil was not hot enough, around 180 to 190C being the working range: too cool and the bread absorbs oil before it can balloon. Pressing the puri gently under the surface with a slotted spoon for the first few seconds fixes most borderline cases.
What exactly is the halwa in halwa puri made from?
Coarse semolina, called sooji, roasted in ghee and then cooked with sugar syrup until it swells into a soft, glossy mass. It is not the sesame-based halva sold in the Middle East and Eastern Europe, which is a different food entirely despite the shared name. The Pakistani breakfast version is usually coloured yellow or orange, scented with cardamom and sometimes saffron or a few drops of kewra, and studded with fried almonds and raisins.
Can I make any of this the night before?
Make the cholay a day ahead — it improves, and it is the longest job. The puri dough can also be kneaded the night before, wrapped tightly and refrigerated, then brought back to room temperature for half an hour before rolling. The halwa is best made the same morning but tolerates being cooked an hour early and kept covered over the lowest possible heat. The puris themselves have to be fried at the last minute, no exceptions.
Is halwa puri the same as chole bhature?
Related but not the same. Chole bhature, eaten across northern India and Punjab on both sides of the border, pairs dark, heavily spiced chickpeas with one large leavened, deep-fried bread made from a fermented dough. Halwa puri uses several small unleavened puris, a lighter and sourer chickpea curry, and adds the sweet semolina halwa that gives the dish its name. The sweet-and-savoury combination on one plate is what makes it distinctly a Pakistani breakfast rather than a heavier lunch dish.
How much oil does this actually absorb?
Less than the volume in the ingredient list suggests, because most of the frying oil stays in the pan. A correctly fried puri — stiff dough, oil at temperature, thirty to forty seconds in and out — takes on far less fat than a puri fried in cool oil, which can double its weight. It is still rich food. Drain the puris upright in a colander rather than flat on paper, so the oil runs off instead of pooling underneath.
You might also like.
All recipes →Keep exploring Pakistan.
Pakistan has 9 more dishes in the atlas — Balochi Sajji and Chana Chaat, and 7 more.
Recipe by The DishRoute Kitchen · published August 20, 2026 · updated August 20, 2026



