Qolqoli Gooshti (قلقلی گوشتی) — Persian Creamy Beef Meatballs
Tender Persian-style beef meatballs enriched with mozzarella and simmered in a silky white sauce. Familiar home-cooking flavors meet a modern, velvety texture for a comforting, elegant main dish.

Printable Recipe Card
Servings: 4 · Total: 65 min · Difficulty: medium
Ingredients (quick list)
- 500 g Ground beef (85–90% lean) (cold from the refrigerator for easier shaping)
- 180 g Onion (1 large, finely grated; squeeze out excess juice)
- 60 g Panko breadcrumbs (about 1 cup; or use fine breadcrumbs)
- 80 ml Whole milk (for soaking breadcrumbs)
- 20 g Fresh parsley (finely chopped (about 1/2 cup loosely packed))
- 120 g Mozzarella cheese (low-moisture, cut into 1 cm cubes)
- 8 g Salt (about 1 1/4 tsp fine salt)
- 2 g Black pepper (about 1 tsp, freshly ground)
- 30 g All-purpose flour (about 1/4 cup, for lightly dusting meatballs)
- 30 g Unsalted butter
- 15 ml Neutral oil (about 1 tbsp, for browning)
Steps (summary)
- Make a panade for tenderness: in a bowl, combine the panko breadcrumbs with 80 ml milk and stir until evenly moistened. Let sta…
- Mix the meatball base: add ground beef, squeezed grated onion, chopped parsley, salt, and black pepper to a large bowl. Add the…
- Shape and fill: portion into 20 meatballs (about 30–32 g each). Press a mozzarella cube into the center of each, then seal well…
- Brown the meatballs: heat 1 tbsp neutral oil in a wide skillet over medium-high heat. Lightly dust meatballs with 30 g flour, s…
- Build the silky white sauce: reduce heat to medium. Add butter to the same skillet and melt, scraping up browned bits. Whisk in…
- Simmer and finish: bring sauce to a gentle simmer, then season with 1/2 tsp salt and 1/4 tsp black pepper. Nestle meatballs int…
Cultural Background
Small round meatballs are a familiar home-cooking format across Iran, often shaped for quick cooking and easy sharing. This creamy version reflects contemporary Persian kitchens that adapt classic techniques to newer textures and ingredients while keeping the comforting, family-table spirit.
Equipment
💡 Tips
- Squeezing the grated onion is essential; excess onion juice can make the mixture loose and cause meatballs to crack.
- Low-moisture mozzarella melts neatly and is less likely to leak than fresh mozzarella.
- If the sauce thickens too much while simmering, whisk in 15–30 ml warm milk to loosen it.
- For extra tenderness, avoid overmixing; stop as soon as the mixture holds together and looks uniform.
- Brown in batches to prevent steaming; overcrowding reduces color and flavor.
⚠️ Common Mistakes
❌ Skipping the onion-squeezing step
💡 Why: Extra moisture weakens the meat mixture and can cause meatballs to fall apart or weep liquid into the sauce.
✅ Fix: Grate onion finely, then squeeze hard in a towel until mostly dry; measure by weight before squeezing for consistency.
❌ Overmixing the meatball mixture
💡 Why: Too much mixing develops a tight, springy texture and can make meatballs tough.
✅ Fix: Mix only 2–3 minutes until cohesive; if it feels stiff, add 15 ml milk and mix briefly.
❌ Adding cold milk all at once to the roux
💡 Why: A sudden temperature shock and large volume can create lumps and uneven thickening.
✅ Fix: Warm the milk if possible and whisk it in gradually in 3 additions, smoothing fully between each.
❌ Boiling the sauce hard after adding meatballs
💡 Why: High heat can split the dairy sauce and overcook the meatballs, squeezing out juices.
✅ Fix: Keep at a gentle simmer on low heat; aim for 71°C/160°F internal temperature, then rest 5 minutes.
🧊 How to Store
Cool completely, then refrigerate in an airtight container for up to 3 days. Reheat gently on the stovetop over low heat with 30–60 ml milk to restore the sauce texture. Freeze meatballs and sauce together up to 2 months; thaw overnight in the refrigerator before reheating.
📅 Make Ahead
Form and stuff meatballs up to 24 hours ahead; store covered in the refrigerator. Brown them up to 8 hours ahead and refrigerate. Rewarm in the finished sauce over low heat for 12–15 minutes, adding a splash of milk to maintain a silky consistency.
🍽️ Pairs Well With
- Steamed basmati rice
- Persian-style salad (cucumber
- tomato
- herbs)
- Pickled vegetables
- Warm flatbread
Regional Variations
- Tehran-style modern home cookingOften features a lighter, milk-forward sauce and smaller meatballs for quicker weeknight cooking, sometimes finished with extra herbs for freshness.
- Northwestern Iran (Azerbaijan region) influenceMeatballs may be slightly larger and more herb-heavy, with a preference for deeper browning before simmering to build a richer base flavor.
Ingredients
- 500 gGround beef (85–90% lean) (cold from the refrigerator for easier shaping)
- 180 gOnion (1 large, finely grated; squeeze out excess juice)
- 60 gPanko breadcrumbs (about 1 cup; or use fine breadcrumbs)
- 80 mlWhole milk (for soaking breadcrumbs)
- 20 gFresh parsley (finely chopped (about 1/2 cup loosely packed))
- 120 gMozzarella cheese (low-moisture, cut into 1 cm cubes)
- 8 gSalt (about 1 1/4 tsp fine salt)
- 2 gBlack pepper (about 1 tsp, freshly ground)
- 30 gAll-purpose flour (about 1/4 cup, for lightly dusting meatballs)
- 30 gUnsalted butter
- 15 mlNeutral oil (about 1 tbsp, for browning)
🔄 Substitutions
- Ground beef→ Ground lamb or a 50/50 beef-lamb blend
- Panko breadcrumbs→ Fine dry breadcrumbs
- Mozzarella cheese→ Mild provolone or low-moisture mozzarella sticks cut into cubes
Instructions
- 1
Make a panade for tenderness: in a bowl, combine the panko breadcrumbs with 80 ml milk and stir until evenly moistened. Let stand 10 minutes so the crumbs fully hydrate. Meanwhile, grate the onion finely, then squeeze it firmly in a clean towel to remove excess liquid.
- 2
Mix the meatball base: add ground beef, squeezed grated onion, chopped parsley, salt, and black pepper to a large bowl. Add the soaked breadcrumbs. Mix by hand for 2–3 minutes until the mixture looks cohesive and slightly sticky, but stop before it becomes dense.
- 3
Shape and fill: portion into 20 meatballs (about 30–32 g each). Press a mozzarella cube into the center of each, then seal well so cheese is fully enclosed. Roll between your palms to smooth. Refrigerate 10 minutes to firm up for cleaner browning.
- 4
Brown the meatballs: heat 1 tbsp neutral oil in a wide skillet over medium-high heat. Lightly dust meatballs with 30 g flour, shaking off excess. Sear in batches for 5–7 minutes total, turning to brown most sides. Transfer to a plate; they will finish cooking in the sauce.
- 5
Build the silky white sauce: reduce heat to medium. Add butter to the same skillet and melt, scraping up browned bits. Whisk in 25 g flour and cook 60–90 seconds until pale blond and nutty-smelling. Slowly whisk in 500 ml milk in 3 additions, smoothing lumps each time.
- 6
Simmer and finish: bring sauce to a gentle simmer, then season with 1/2 tsp salt and 1/4 tsp black pepper. Nestle meatballs into the sauce, cover, and simmer on low for 10–12 minutes, turning once halfway, until the centers reach 71°C/160°F. Rest 5 minutes before serving.
🪪 Recipe Passport
Cultural Background
Small round meatballs are a familiar home-cooking format across Iran, often shaped for quick cooking and easy sharing. This creamy version reflects contemporary Persian kitchens that adapt classic techniques to newer textures and ingredients while keeping the comforting, family-table spirit.
Regional Variations
Researched from multiple sources and validated by the Zaffaron editorial team. Every recipe is tested for accuracy, measurements, and cultural authenticity.
Nutrition per serving
Pairs well with
If you enjoyed this recipe, here are a few related Zaffaron recipes to try next.
- Reshteh Polo ba Gosht (رشته پلو با گوشت) — Persian Noodle Rice with Braised Meat
- Rolat Goosht va Morgh (رولت گوشت و مرغ) — Persian Mixed Meat & Chicken Roulade
- Rustic Mediterranean Spinach and Egg Flatbread (نرگسی) — Crispy flatbread with garlicky spinach and baked eggs
- Sabzi va Panir (سبزی و پنیر) — Persian Herb and Feta Cheese Spread
Does your family make this differently?
Every family has their own version. Maybe your grandmother adds a secret ingredient, or your aunt has a completely different technique. Preserve your family's version — with their name on it, forever.
You Might Also Like

Yatimcheh (یتیمچه) — Persian Slow-Cooked Summer Vegetable Stew
Persian · Stews · 100 min

Chicken Stuffed Cabbage Rolls (دلمه کلم با مرغ) — Herb-Scented Persian Dolmeh in Tomato Saffron Sauce
Persian · Main Courses · 90 min

Baghali Polo (باقالی پلو) — Persian Dill and Fava Bean Rice with Saffron
Persian · Rice Dishes · 95 min

Orromo (Оромо) — Kyrgyz Steamed Rolled Dumpling with Lamb and Pumpkin
Kyrgyz · Main Courses · 105 min

Swedish Smörgåsbord (Smörgåsbord) — Classic Buffet with Gravlax, Sill, and Köttbullar
Swedish · Main Courses · 115 min

Azerbaijani Milk-Rice Porridge (Südlü Sıyıq) — Creamy Breakfast Rice with Saffron
Azerbaijani · Rice Dishes · 50 min

Mıhlama (Mıhlama) — Black Sea Cornmeal and Cheese Skillet
Turkish · Main Courses · 25 min

Shakarob (Шакароб) — Tajik Tomato-Onion Bread Salad
Tajik · Salads · 25 min
Reviews
Cooked this recipe?
Tap the stars to rate it — that's all it takes. A few words are welcome but optional.
No ratings yet. Cooked this one? Be the first to rate it — it takes one tap.