Quick Recipe Version (TL;DR)
Quick Ingredients
- 1 lb (450 g) ground beef (80–85% lean)
- 1/2 lb (225 g) ground lamb
- 1 small onion, grated; 4 garlic cloves, minced
- 1/2 cup (15 g) finely chopped parsley, divided
- 1/4 cup (30 g) fine breadcrumbs
- 2 tsp ground cumin, 1 1/2 tsp sweet paprika, 1/2–1 tsp red pepper flakes
- 1 1/2 tsp fine sea salt, 3/4 tsp black pepper (divided between components)
- 1 cup (180 g) medium or fine bulgur wheat
- 2 tbsp tomato paste; 2 cups (480 ml) chicken or vegetable stock
- 1 1/2 cups (360 g) full-fat Greek yogurt
- 1 small cucumber, grated; juice of 1 lemon (plus 1 extra lemon, halved)
- 4 tbsp olive oil total; 2 tbsp butter
- Fresh mint or dill (for dip and garnish)
Do This
- 1. Soak wooden skewers in water. Grate onion and cucumber, mince garlic, chop herbs.
- 2. Stir yogurt, grated cucumber, lemon juice, garlic, olive oil, salt, and mint into a thick dip; chill.
- 3. Mix beef, lamb, grated onion, garlic, parsley, breadcrumbs, cumin, paprika, red pepper, salt, and pepper. Shape firmly around skewers; chill.
- 4. For bulgur, sauté onion in butter and oil, add tomato paste and bulgur, then stock and salt. Simmer covered 12–15 minutes; rest 10 minutes.
- 5. Preheat grill to medium-high (400–450°F / 200–230°C). Grill köfte skewers 8–10 minutes, turning, until browned and cooked through. Grill lemon halves cut-side down until charred.
- 6. Fluff bulgur with a fork, stir in herbs and a drizzle of olive oil.
- 7. Plate bulgur, top with köfte, add charred lemon and a generous spoon of cucumber–yogurt dip. Garnish with herbs and serve hot.
Why You’ll Love This Recipe
- Complete dinner on one plate: juicy grilled köfte, herby bulgur pilav, and a cooling yogurt dip.
- Big, bold flavors from cumin, paprika, and grilled meat balanced by bright lemon and fresh herbs.
- Mostly pantry staples and straightforward techniques, with restaurant-level presentation.
- Great for weeknights or casual entertaining; easy to double for a crowd.
Grocery List
- Produce: 2 onions, 1 small cucumber, 1 head garlic, 2 lemons, fresh parsley, fresh mint and/or dill (plus extra herbs for garnish)
- Dairy: Full-fat Greek yogurt, unsalted butter
- Pantry: Ground beef, ground lamb, bulgur wheat, chicken or vegetable stock, tomato paste, fine breadcrumbs, olive oil, ground cumin, sweet paprika, red pepper flakes (or Aleppo pepper), salt, black pepper
Full Ingredients
For the Grilled Köfte Skewers
- 1 lb (450 g) ground beef, 80–85% lean
- 1/2 lb (225 g) ground lamb
- 1 small onion, very finely grated (about 1/2 cup packed, juices included)
- 3 garlic cloves, minced
- 1/3 cup (10 g) finely chopped fresh parsley
- 1/4 cup (30 g) fine dry breadcrumbs
- 2 tsp ground cumin
- 1 1/2 tsp sweet paprika
- 1/2–1 tsp red pepper flakes or Aleppo pepper (to taste)
- 1 1/4 tsp fine sea salt
- 1/2 tsp freshly ground black pepper
- 1 tbsp olive oil (for brushing)
- 8–10 metal or soaked wooden skewers (8–10 inches / 20–25 cm)
For the Herby Bulgur Pilav
- 1 cup (180 g) medium or fine bulgur wheat
- 2 tbsp unsalted butter
- 1 tbsp olive oil
- 1 small onion, finely diced
- 1 tbsp tomato paste
- 2 cups (480 ml) chicken or vegetable stock (or water, in a pinch)
- 1/2 tsp fine sea salt (adjust depending on saltiness of stock)
- 1/4 tsp freshly ground black pepper
- 3 tbsp finely chopped fresh parsley
- 2 tbsp finely chopped fresh mint or dill (or a mix)
- 1 tbsp olive oil (to finish, optional)
For the Cucumber–Yogurt Dip
- 1 1/2 cups (360 g) full-fat Greek yogurt
- 1 small cucumber, seeds removed if watery, coarsely grated
- 1 garlic clove, very finely minced or grated
- 2 tbsp freshly squeezed lemon juice (about 1/2 lemon)
- 1 1/2 tbsp olive oil
- 2 tbsp finely chopped fresh mint (or 1 tsp dried mint), plus extra for garnish
- 1/4–1/2 tsp fine sea salt, to taste
- Pinch of freshly ground black pepper
For Serving & Garnish
- 1 lemon, halved (for charring)
- Extra chopped parsley and/or mint
- Extra olive oil, for drizzling
- Optional: pinch of sumac or extra red pepper flakes for sprinkling

Step-by-Step Instructions
Step 1: Prep your skewers and ingredients
If using wooden skewers, place 8–10 skewers in a shallow dish of water and soak for at least 20–30 minutes to prevent burning on the grill.
Meanwhile, finely chop the parsley and mint (or dill) and set aside in separate piles for the köfte, pilav, and dip. Grate one small onion on the small holes of a box grater, catching both the pulp and juices. Mince 4 garlic cloves total (3 for the köfte and pilav, 1 for the dip), keeping them in separate small piles. Grate the cucumber for the dip and lightly squeeze out excess moisture with your hands or a clean kitchen towel, especially if it is very watery.
Step 2: Make the cucumber–yogurt dip
In a medium bowl, combine the Greek yogurt, grated cucumber, 1 minced garlic clove, lemon juice, 1 1/2 tablespoons olive oil, 2 tablespoons chopped mint, 1/4 teaspoon salt, and a pinch of black pepper. Stir until smooth and creamy. Taste and adjust with a bit more salt or lemon juice if needed. The dip should be tangy, fresh, and well seasoned.
Cover and refrigerate while you prepare the rest of the meal. The flavors will meld and the dip will thicken slightly as it chills. If it becomes too thick, you can loosen it later with a teaspoon or two of cold water or more lemon juice.
Step 3: Mix and shape the köfte skewers
In a large mixing bowl, add the ground beef and ground lamb. Add the grated onion (with its juices), 3 minced garlic cloves, 1/3 cup chopped parsley, breadcrumbs, cumin, paprika, red pepper flakes, 1 1/4 teaspoons salt, and 1/2 teaspoon black pepper. Using clean hands, gently but thoroughly mix until everything is evenly combined and the mixture feels slightly sticky and cohesive. Avoid overworking, which can make the meat tough.
Divide the mixture into 8–10 equal portions. With damp hands, press each portion firmly around a skewer, shaping it into a long oval or sausage shape about 5–6 inches (12–15 cm) long and 1 inch (2.5 cm) thick. Press to compact the meat well so it clings to the skewer. Lay the shaped skewers on a tray, cover, and refrigerate for at least 15–20 minutes while you start the bulgur pilav. This helps them firm up and stay together on the grill.
Step 4: Start the bulgur pilav base
In a medium saucepan with a tight-fitting lid, heat 2 tablespoons butter and 1 tablespoon olive oil over medium heat. Add the finely diced onion and a pinch of salt. Cook, stirring often, for 4–5 minutes, until the onion is soft and translucent but not browned.
Stir in the tomato paste and cook for 1–2 minutes, pressing it into the pan, until it darkens slightly in color and smells sweet and concentrated. Add the bulgur and stir to coat each grain in the buttery tomato mixture. Toast for 1–2 minutes, stirring constantly, until the bulgur smells nutty.
Step 5: Simmer and finish the bulgur pilav
Pour in the stock (or water), add 1/2 teaspoon salt (less if your stock is salty), and 1/4 teaspoon black pepper. Stir well, then bring to a gentle boil over medium-high heat. Once it boils, reduce the heat to low, cover tightly, and simmer for 12–15 minutes for medium bulgur (or about 8–10 minutes for fine bulgur), until the liquid is absorbed and the bulgur is tender.
Turn off the heat and let the pilav sit, covered, for 10 minutes to steam and finish cooking. Then uncover, fluff gently with a fork, and stir in 3 tablespoons chopped parsley, 2 tablespoons chopped mint or dill, and the remaining 1 tablespoon olive oil if using. Taste and adjust seasoning with more salt or pepper as needed. Cover loosely to keep warm while you grill the köfte.
Step 6: Grill the köfte skewers and char the lemons
Preheat your grill (gas or charcoal) to medium-high heat, about 400–450°F (200–230°C). Clean and oil the grates well to minimize sticking. Brush the köfte skewers lightly with olive oil on all sides. Place the lemon halves cut-side up for now.
Arrange the skewers on the grill. Cook for 8–10 minutes total, turning every 2–3 minutes, until nicely browned and lightly charred in spots, and the internal temperature reaches at least 160°F (71°C). Try not to move them too early; allow a light crust to form before turning to prevent sticking. For the last few minutes, place the lemon halves cut-side down directly on the grill until deeply charred and caramelized, about 3–4 minutes.
If you do not have an outdoor grill, you can cook the skewers on a preheated grill pan or under a broiler set to high, turning occasionally until cooked through and well browned.
Step 7: Plate, garnish, and serve
Give the bulgur pilav a final fluff with a fork and adjust the seasoning if needed. Spoon a generous bed of pilav onto each plate. Top with 2 köfte skewers per person. Add a good dollop of the chilled cucumber–yogurt dip on the side of each plate or in a small bowl.
Squeeze some of the charred lemon over the skewers and pilav, serving extra wedges at the table. Scatter with more chopped parsley and mint, and, if you like, a pinch of sumac or red pepper flakes for color and a slight kick. Drizzle a thin thread of olive oil over the dip and around the plate for a glossy finish. Serve immediately while the köfte are hot and juicy, alongside warm flatbreads or a simple salad if you like.
Pro Tips
- Keep the meat cold: Cold meat is easier to shape and holds better on skewers. If it starts to feel greasy or soft, pop it back in the fridge for 10–15 minutes before grilling.
- Do not overmix the köfte: Mix just until the ingredients are evenly combined. Overworking the meat can make the texture dense and bouncy instead of tender.
- Compact the meat onto the skewers: Press firmly as you shape so there are no gaps. This prevents the köfte from cracking and sliding off during grilling.
- Rest the bulgur: The 10-minute rest off the heat is essential for fluffy pilav. Resist the urge to stir or open the lid too soon.
- Adjust heat, not cooking time: If the köfte brown too quickly, move them to a cooler part of the grill. You want deep color and light char without burning.
Variations
- All-beef or all-lamb: Use 1 1/2 lb (675 g) of a single meat if you prefer, adjusting the fat level to around 80–85% lean for juiciness.
- Add grilled vegetables: Thread peppers, onions, and cherry tomatoes onto separate skewers and grill alongside the köfte for extra color and veg.
- Different grain base: Swap bulgur for couscous, quinoa, or rice, adjusting liquid and cooking time according to package directions but keeping the same tomato and herb flavor profile.
Storage & Make-Ahead
The köfte mixture can be prepared and shaped on skewers up to 24 hours in advance. Cover well and refrigerate; remove from the fridge about 15–20 minutes before grilling to take the chill off. The cucumber–yogurt dip can be made 1 day ahead; store covered in the refrigerator and stir before serving. If it thickens, loosen with a splash of water or more lemon juice.
Cooked köfte, bulgur pilav, and dip will keep in the refrigerator for up to 3 days in separate airtight containers. Reheat the köfte gently in a covered skillet over low heat with a splash of water, or in a 325°F (165°C) oven until warmed through. Reheat bulgur in the microwave or on the stovetop with a spoonful of water to rehydrate. The dip is best served cold and should not be reheated. For longer storage, the cooked köfte freeze well (up to 2 months); thaw overnight in the fridge before reheating.
Nutrition (per serving)
Approximate values for 1 serving (1/4 of the recipe, including köfte, bulgur pilav, and a generous portion of dip): about 680 calories; 36 g protein; 58 g carbohydrates; 32 g fat (13 g saturated); 6 g fiber; 1,150 mg sodium. Values will vary based on exact ingredients, brands, and portion sizes.
