Greek meatballs, or keftedes if you want to sound fancy, are one of those dishes that smell so good while they’re cooking that you’ll have people wandering into the kitchen to ask what’s for dinner. The mint and warm spices like cinnamon and cumin fill up the whole house with this cozy, herby smell. And the lemon sauce at the end? It’s bright and tangy without being too much.
I learned the hard way that you really need to budget time for rolling these in flour. The first time I made them, I was trying to rush dinner and skipped the flour coating because I didn’t think it’d make a big difference. Big mistake. The flour is what gives you that golden crispy crust on the outside while the inside stays juicy. So now I just put on a podcast and roll them out while I take my time.
Here’s a little tip that changed the game for me: grate the onion instead of chopping it. I know it sounds weird, but grating it releases all the juice into the meat mixture and you don’t get those chewy onion chunks in your meatballs. And don’t skip soaking the bread in milk either. That soft bread is what keeps these tender instead of dry and dense.
You can serve these a bunch of different ways. I like piling them on a plate with a Greek salad, some warm pita, and a big spoonful of tzatziki to dip everything in. But they’re also good stuffed in a pita pocket as a sandwich, or over rice if you want something heartier. Let’s get into how to pull these together.
Why We Love This Recipe
The texture is spot on. That flour coating gives you a crispy golden crust on the outside, and the milk-soaked bread keeps the insides soft and juicy.
The flavor is bold and warm. Fresh mint, garlic, lemon, and spices like cinnamon and cumin make every meatball taste rich without feeling heavy.
They work for any meal. Pile them on a salad for lunch, stuff them in pita for a sandwich, or serve them over rice for dinner.
Leftovers hold up great. Pop them in the fridge and they reheat nicely the next day. The lemon sauce actually tastes better after sitting overnight.
Ingredients You’ll Need

Here’s what to grab before you start cooking:
- Ground beef – one pound of lean beef forms the base of the meatballs
- Ground lamb or pork – half a pound mixed in adds richness and that classic Greek flavor
- Whole milk – one third of a cup to soak the bread (use water if you need dairy-free)
- Day-old bread – one slice cubed up, this is what keeps the meatballs from turning out dry
- Yellow onion – one onion grated so it melts right into the meat
- Garlic – three cloves minced (or more if you love garlic)
- Olive oil – two tablespoons for sauteing plus a quarter cup for frying
- Egg – one whole egg for the meatballs and one yolk for thickening the sauce
- Fresh mint – a quarter cup chopped, or swap with parsley or dill if that’s what you’ve got
- Ground coriander – one tablespoon for that warm, citrusy note
- Dried oregano – one teaspoon, a staple in Greek cooking
- Ground cumin – one teaspoon for earthy depth
- Ground cinnamon – half a teaspoon, trust me on this one
- Ground nutmeg – just a quarter teaspoon for warmth
- Salt and pepper – to taste
- Lemons – three lemons, you’ll need both the zest and the juice so grab untreated ones if you can
- Flour – for rolling the meatballs and getting that crispy crust
- Chicken broth – one and a quarter cups for the lemon sauce (skip beef broth, it’s too strong here)
If you don’t have lamb, ground pork works just as well. And if you’re out of fresh mint, dried mint or parsley will do the job in a pinch.
How to Make Greek Meatballs

1. Soak the bread
Cube up your day-old bread and drop it in a small bowl. Pour the milk over and let it sit for about five minutes. The bread should look soft and soggy when it’s ready. This is the secret to keeping your meatballs from going dry.
2. Cook the aromatics
Heat some olive oil in a big skillet over medium heat. Toss in your grated onion and minced garlic and stir them around until they turn soft and golden. Scrape everything into a large mixing bowl and let it cool down. Hold onto that skillet, you’ll need it again.
3. Mix the meat
Squeeze the milk out of the bread and add it to the bowl. Drop in the ground beef and lamb, the whole egg, fresh mint, and lemon zest. Sprinkle in the coriander, oregano, cumin, cinnamon, nutmeg, salt, and pepper. Get your hands in there and mix until everything’s blended.
4. Shape and flour
Scoop out heaping spoonfuls of the meat mixture and roll them between your palms into balls. Drop each one into a plate of flour and roll it around so the outside gets a nice light coating. Set them on a tray as you go.
5. Fry the meatballs
Pour the rest of the olive oil into your skillet and heat it over medium-high. Once it shimmers, drop the heat to medium and lay the meatballs in. Cook them for about 10 minutes, turning every so often, until they’re golden brown all over. Work in batches if your pan’s crowded.
6. Mix the sauce
While the meatballs drain on paper towels, grab a bowl and whisk together your egg yolk, chicken broth, lemon juice, and the rest of the lemon zest. Pour out most of the cooking fat from the skillet but leave those tasty browned bits behind. They give the sauce so much flavor.
7. Simmer everything together
Set the skillet back on medium heat and pour in the lemon mixture. Slide the meatballs in and let everything bubble together for about five minutes. The sauce will thicken up as it cooks. Give the meatballs a quick spoonful of sauce and serve them right away.
Expert Tips
Grate the onion, don’t chop it. Grated onion melts into the meat and adds moisture without leaving those weird chewy bits in your meatballs.
Use day-old bread. Fresh bread turns to mush when it hits the milk. Slightly stale bread soaks up the liquid without falling apart.
Don’t crowd the skillet. Give each meatball some breathing room so they brown evenly. Cooking in batches takes longer but tastes way better.
Whisk the egg yolk into the broth first. Adding it straight to the hot pan can scramble it. Mixing with cool liquid keeps the sauce smooth.
Wet your hands before rolling. A little water on your palms stops the meat from sticking and makes shaping go way faster.
Recipe Variations and Add-ins
Swap the meat. Ground turkey or chicken works in place of beef and lamb. Use 1.5 pounds total. The meatballs will be lighter but still hold together well.
Use feta inside. Crumble 1/2 cup of feta cheese into the meat mixture. It melts as the meatballs cook and gives you salty pockets throughout.
Add chopped olives. Mix 1/3 cup of pitted kalamata olives, finely chopped, into the meat. They bring a briny punch that goes nicely with the lemon sauce.
Bake instead of fry. Line a sheet pan with parchment and bake the floured meatballs at 400°F for 18 to 20 minutes. They won’t crust the same but cleanup is easier.
Switch the herbs. Use 1/4 cup of fresh dill or fresh parsley instead of mint. Each one gives the meatballs a slightly different but still classic Greek taste.
Add red pepper flakes. Stir 1/2 teaspoon of crushed red pepper into the meat mixture. The heat plays well with the warm spices and bright lemon.
Make smaller meatballs. Roll them into 1-inch balls instead of heaping tablespoons. They cook in about 6 minutes and work great as party appetizers on toothpicks.
What to Serve With Greek Meatballs
Greek salad pairs naturally with these meatballs. Tzatziki sauce works as a dip. Warm pita bread rounds out the plate.
Rice pilaf turns this into dinner. Lemon potatoes hold up well too. Roasted vegetables fit the same flavor profile.
Hummus and olives belong on a mezze platter. A glass of dry white wine finishes the meal nicely.
How to Store Greek Meatballs
Let the meatballs cool down before storing. Transfer them and the sauce into a sealed container. They’ll keep in the fridge for about four days.
Reheat them in a skillet over low heat. Add a splash of broth or water to loosen the sauce. Stir gently so the meatballs stay whole.
Freeze cooked meatballs without the sauce. Lay them on a tray first, then move them to a freezer bag. They keep for about three months.





Leave a Comment