Pakistani kofta curry is a home-style dish of seasoned ground-meat meatballs simmered in a warmly spiced onion, tomato, and yogurt gravy. Versions vary from household to household; this approachable beef version keeps the koftas tender and lets them finish cooking in the sauce, so they pick up its flavor as it thickens.
Ingredients
- 1 lb (450 g) ground beef, preferably 80–85% lean
- 1/3 cup (50 g) finely grated onion for the koftas, squeezed lightly to remove excess liquid
- 1/4 cup (10 g) finely chopped fresh cilantro, plus more to finish
- 1 tbsp (15 g) ginger-garlic paste, for the koftas
- 1 tsp (5 g) finely chopped green chile, optional
- 1 tsp (2 g) lightly crushed coriander seeds
- 1 tsp (2 g) ground cumin
- 1/2 tsp (1 g) garam masala
- 3/4 tsp (4.5 g) fine salt
- 1/4 tsp (0.5 g) ground black pepper
- 2 tbsp (30 ml) neutral oil, for the gravy
- 2 medium yellow onions (about 300 g), thinly sliced
- 1 tbsp (15 g) ginger-garlic paste, for the gravy
- 1 tsp (2 g) cumin seeds
- 1 cinnamon stick, about 2 in (5 cm)
- 2 green cardamom pods (about 1 g), lightly cracked
- 1/2 tsp (1.5 g) ground turmeric
- 1 1/2 tsp (3 g) ground coriander
- 1 tsp (2 g) mild red chili powder, or less to taste
- 1 cup (240 g) finely chopped ripe tomatoes
- 1/2 cup (120 g) plain full-fat yogurt, whisked until smooth
- 1 1/2 cups (355 ml) water, plus a little more if needed
- 1/2 tsp (3 g) fine salt, then more to taste
- 1/2 tsp (1 g) garam masala, for finishing
- 1 tbsp (5 g) thinly sliced fresh ginger, for garnish
Instructions
- Mix and shape the koftas. Put the ground beef, grated onion, cilantro, 1 tablespoon ginger-garlic paste, green chile if using, crushed coriander seeds, ground cumin, 1/2 teaspoon garam masala, salt, and black pepper in a bowl. Mix gently with your fingertips just until evenly combined; overworking can make the meatballs firm. Shape into about 18 balls, each roughly 1 1/2 inches (4 cm) across. Set them on a plate while you prepare the gravy. If the mixture feels sticky, lightly dampen your hands rather than adding extra breadcrumbs or flour.
- Start the onion base. Heat the oil in a wide, heavy-bottomed pot or deep skillet over medium heat. Add the sliced onions and cook for about 12 minutes, stirring regularly, until soft and deep golden. Adjust the heat if the edges darken too quickly. Properly browned onions give the gravy much of its body and sweetness, so avoid stopping while they are still pale, but do not let them burn.
- Bloom the whole spices. Add the cumin seeds, cinnamon stick, and cracked cardamom. Stir for about 30 seconds, then add the remaining tablespoon of ginger-garlic paste. Cook for another 2 to 3 minutes, stirring, until its sharp raw aroma fades. Add the turmeric, ground coriander, and chili powder and stir for 20 seconds. If the spices start sticking, add a tablespoon of water instead of letting them scorch.
- Cook the tomato and yogurt. Stir in the tomatoes and 1/2 teaspoon salt. Cook for about 5 minutes, breaking down the tomatoes with the spoon, until they are soft and the mixture looks saucy. Lower the heat. Add the whisked yogurt a spoonful at a time, stirring continuously so it blends into the hot onion mixture without curdling. Cook gently for about 5 minutes, until the gravy looks cohesive and a little oil begins to show at the edges.
- Loosen the gravy and add the meatballs. Pour in 1 1/2 cups water and stir well, scraping up any browned bits. Bring the sauce to a gentle simmer, not a hard boil. Carefully lower in the koftas in a single layer, using a spoon to make room rather than stirring vigorously. Cover the pot and simmer gently for 20 minutes. Keep the heat low enough that the sauce bubbles softly; rapid boiling can break up the meatballs.
- Finish cooking the koftas. Remove the lid and simmer for about 10 minutes more, turning the meatballs carefully once if needed. Check a kofta in the center of the pot with a food thermometer: ground beef must reach the USDA FSIS safe minimum internal temperature of 160°F (71°C). If it has not reached that temperature, continue simmering and check again. The gravy should coat the meatballs; add a splash of water if it has become thicker than you like.
- Season and serve. Stir in the finishing garam masala and taste the gravy, adding salt if needed. Scatter over the sliced ginger and extra cilantro. Let the curry stand for 5 minutes before serving so the sauce settles and the koftas are easier to lift out intact.
Tips
- Keep the mixture tender. Use cold ground beef and mix only until the seasonings are distributed. A little fat helps the koftas stay moist; very lean beef can turn dry during the simmer. If you have only lean meat, handle it especially gently and avoid extending the cooking time once the safe temperature is reached.
- Control the onion moisture. Finely grated onion adds flavor to the meatballs, but excess juice can make them loose. Squeeze it lightly over the sink or through a clean cloth, then mix in the solids. If a shaped kofta still seems fragile, chill the meatballs for 10 minutes while the onions cook; this brief optional pause adds time and is not included in the recipe estimate.
- Temper yogurt gradually. Use room-temperature yogurt if possible, whisk it smooth, and stir it in over low heat. Full-fat plain yogurt is less likely to split than a very low-fat version. If yogurt is unavailable, use 1/3 cup (80 ml) heavy cream for a milder, richer gravy; it will taste less tangy and less traditional in character.
- Adjust texture at the end. Curry thickness depends on the pot and how vigorously it simmers. Add hot water a few tablespoons at a time if the gravy tightens too much, or simmer uncovered briefly if it is thin. Avoid frequent stirring after adding koftas; gently shake the pot or spoon sauce over them instead.
Serving Suggestions
Serve the curry hot with steamed basmati rice, naan, roti, or chapati, giving each person plenty of gravy to spoon over the starch. A simple cucumber and tomato salad, sliced red onion with lemon, or lightly dressed greens brings a crisp contrast to the rich sauce. For a fuller meal, add a vegetable side such as cumin-scented potatoes, sautéed spinach, or green beans, but keep its seasoning fairly simple so it does not compete with the curry.
For a family-style table, transfer the koftas carefully to a shallow serving bowl and pour the gravy over them. Finish with cilantro and ginger just before serving rather than cooking the garnish into the sauce. If serving with flatbread, keep the gravy slightly thicker; with rice, a looser sauce is easy to spoon over each portion. This recipe serves five as a main course, or six with several substantial sides.
Variations
Use lamb instead of beef: Ground lamb works in the same quantity and at the same safe minimum internal temperature of 160°F (71°C) for ground meat. It makes a richer-tasting curry, so you may want to skim excess surface fat before serving. A mixture of beef and lamb is another option; keep the total ground meat at 1 lb (450 g).
Make the heat gentler or stronger: Leave out the green chile and reduce the red chili powder for a milder pot. For more heat, add a finely chopped green chile to the meat mixture or increase the chili powder in small increments. Chili powders vary in strength and color, so taste the gravy before adding extra.
Try a smoother gravy: Once the onion and tomato mixture is cooked, let it cool briefly and blend it until smooth, then return it to the pot and bring it back to a gentle simmer before adding water and koftas. Blend carefully and do not fill a countertop blender with hot liquid beyond its manufacturer’s limit. The result is silkier, though a little less rustic.
Use a traditional spice substitute thoughtfully: Green cardamom and whole coriander seeds can be harder to find in some shops. If you do not have cardamom, omit it rather than substituting a large amount of ground cardamom, which can dominate. If whole coriander seeds are unavailable, use 1/2 teaspoon ground coriander in the koftas; the flavor will be less aromatic and lightly textured.
Storage and Reheating
Cool leftovers promptly and refrigerate them within 2 hours of cooking, preferably in a shallow, airtight container. The curry keeps for 3 to 4 days in the refrigerator. Store the koftas with their gravy so they stay moist. For longer storage, freeze in a sealed freezer-safe container for up to 2 to 3 months for best quality. Thaw overnight in the refrigerator rather than on the counter.
Reheat only the portion you plan to eat in a covered saucepan over low to medium-low heat, stirring the gravy gently and turning the koftas carefully. Add a splash of water if the sauce has thickened in storage. Heat leftovers to 165°F (74°C), checking the center of a kofta with a food thermometer. You can also microwave a covered portion, pausing to stir the gravy and rotate the dish so it heats evenly; verify the same temperature before serving. If reheated curry has been sitting at room temperature for more than 2 hours, discard it rather than saving it again.
Frequently Asked Questions
Can I make Pakistani kofta curry ahead?
Yes. You can shape the raw koftas up to one day ahead and keep them covered in the refrigerator, separate from the gravy ingredients. For the best texture, cook the curry on the day you plan to serve it, or cook the whole dish ahead and refrigerate it promptly. Reheat gently to 165°F (74°C), adding a little water if the sauce has thickened.
Why are my koftas breaking apart?
Common causes are a loose mixture from wet grated onion, vigorous boiling, or stirring too soon. Squeeze excess liquid from the onion, shape the balls firmly without compressing them excessively, and lower them into gently simmering gravy. Keep the lid on for the first 20 minutes and move them as little as possible while they set.
Do I need to brown the meatballs first?
No. This recipe cooks the koftas directly in the gravy, which keeps the method straightforward and allows the meat to season the sauce as it simmers. Browning them separately can add a roasted flavor, but it also creates another pan and may make the outside firmer. If you choose to brown them, do so gently and still cook them through to 160°F (71°C).
Can I use store-bought ginger-garlic paste?
Yes. Use an unsalted paste if available, since salted versions can change how much salt the curry needs. If you do not have paste, finely grate equal amounts of fresh ginger and garlic; for each tablespoon of paste, use about 1 1/2 teaspoons (8 g) of each. Freshly grated pieces may give the gravy a slightly more noticeable texture.
What can I use instead of yogurt?
Heavy cream is the easiest substitute: use 1/3 cup (80 ml) in place of 1/2 cup yogurt and stir it in over low heat. The curry will be less tangy and more rounded in flavor. Coconut milk can also work, though it gives the gravy a distinctly different flavor and is not a like-for-like traditional substitute.
Related
- Vietnamese Soup Dishes: Chicken Pho (Pho Ga)
- Vietnamese Pork Stew (Thit Kho) with Coconut Water
- Vietnamese Pumpkin Soup with Pork: A Comforting Recipe
More recipes to cook
Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes
Spotted an error? Tell us and we will correct it (corrections policy).