Greek meatballs — keftedes (κεφτέδες) — are one of the most beloved dishes in Greece, and for good reason. Crispy and golden on the outside, soft and fluffy inside, and loaded with fresh mint, parsley, and oregano, they’re the kind of thing that disappears off the plate before they even hit the table. This is the traditional recipe I grew up with — fried the authentic way, with a few notes for baking, freezing, and serving them souvlaki-style.
If you love our Greek meatballs recipe, try Traditional Soutzoukakia, Low-Carb Turkey Meatballs, or the Juicy Lamb Meatballs.

Why you will love this recipe
Here is what you need

- Ground beef & pork—each cut provides a perfect balance of flavor.
- White bread with crust cut off—You can also use brioche bread. It’s lovely with this meatball recipe.
- Whole milk—To soak the bread.
- Onions and garlic—Grated onions add flavor and make juicy meatballs.
- Fresh spearmint, parsley, and oregano—Herbs give such a lovely summery note. You can use all fresh herbs or just one. If fresh is not available, use their dried versions. Substitute the spearmint with mint.
- Extra virgin olive oil—Just a tablespoon or two in the mixture.
- Eggs—They are the binding agent that keeps the mixture together when formed into meatballs.
- A little vinegar and a shot of ouzo (optional)—The popular alcoholic drink that tastes like licorice perfectly complement Greek meatballs. You can replace the ouzo with a teaspoon of ground aniseed or omit it from the recipe.
- Dried oregano, mint, chili flakes, and ground cumin. Dried herbs have a more intense flavor than fresh. I like to use both versions.
- Sea salt and freshly ground pepper.
- All-purpose flour—To lightly dust the meatballs. It creates a light crust when fried.
Step by step

- Soak the bread in the milk.
- Carefully squish the bread with your hands so most of the milk is out. It’s ok if the bread feels like it still has some milk left over. The goal is to have a moist, fluffy meatball mixture.
- In a large bowl, add the bread and all the other ingredients.
- Add the ouzo shot. Using it is optional. You can substitute with ground anise seed or ground star anise. See recipe notes.

- Using clean hands, mix everything and knead until moist and fluffy. Cover the mixture with a towel and refrigerate for at least 30 minutes.
- Take some of the mixture (about two tablespoons) with a large spoon and shape it into a ball. You can also use an ice cream scooper or your hands.

- Spread some flour on a plate. Run the meatballs in the flour.
- Shake off the excess and place them on a clean plate until all your meatballs are ready for frying.

- Add enough oil to cover 2/3 of a deep frying pan and turn the heat to high. When the oil is hot, fry the meatballs in small doses, about 2 minutes on each side, until golden brown.
- Remove from heat with a slotted spoon and arrange them on absorbent paper to drain the excess oil.

What to serve with keftedes
- For a real taverna experience, serve keftedes family-style with homemade fries, boiled wild greens, or a horiatiki tomato salad. Add some saganaki cheese, tzatziki sauce, and a couple of pieces of bread, and you have a traditional Greek meal.
- Grab one (or two) keftedes with some toasted pita as a snack.
- Our meatballs make a great addition to a Mediterranean meze platter board.
Tips for the best keftedes
- Grate your onion, don’t dice it. Grated onion releases its juice straight into the mix, which keeps the keftedes moist and adds flavor you can’t get from diced onion. Keep those juices — don’t drain them.
- Don’t skip the rest time. Refrigerating the mixture for at least 30 minutes (I often go a full hour) lets the bread fully absorb the milk and the flavors settle. Rushing this step gives you a looser, harder-to-shape mixture.
- Handle the meat gently. Mix and shape with a light touch. Overworking the meat is the #1 reason keftedes turn out dense instead of fluffy.
- Always fry a test one. I know I mention this in the Q&A below, but it’s worth repeating here: fry one meatball first, taste it, and adjust the salt before you shape the rest of the batch.
- Keep the oil at temperature. Fry in small batches so the oil doesn’t cool down — overcrowding the pan is what leads to greasy, pale meatballs instead of a golden crust.
- Make a double batch. Keftedes freeze so well (see storage below) that it’s almost always worth doubling the recipe while you’re already elbow-deep in the mixture.

Storage and reheating
- In the fridge: Cooked keftedes keep for 3–4 days in an airtight container. Reheat gently in a frying pan over medium-low heat, or in the microwave in a covered glass container. A splash of water or olive oil in the pan helps keep them from drying out.
- In the freezer (cooked): Let the meatballs cool completely, then freeze in a single layer on a baking sheet until solid, about an hour. Transfer to a freezer-safe bag, pressing out as much air as possible. They’ll keep for 3–4 months. Reheat straight from frozen in a covered pan over low heat, or thaw overnight in the fridge first.
- In the freezer (uncooked): Shape the raw meatballs and freeze them the same way — flash-freeze them on a tray, then bag. This is my favorite make-ahead trick for weeknights: fry them straight from frozen, just add a few extra minutes to the cook time.
- Meal prep tip: Keftedes are one of the few fried foods that taste just as good at room temperature, which makes them ideal for packed lunches or a make-ahead meze platter.
Ways to serve & variations
Keftedes with tomato sauce — Simmer fried (or baked) keftedes in a simple tomato sauce — crushed tomatoes, olive oil, garlic, a bay leaf, and a pinch of sugar to balance the acidity — for about 15 minutes. This turns them into more of a main course, perfect spooned over rice, orzo, or with crusty bread to mop up the sauce. It’s a completely different (and equally traditional) way to eat them compared to serving them dry with tzatziki.
Keftedes pita, souvlaki-style — Warm a pita, spread it with tzatziki, and load it up with keftedes, tomato, red onion, and a handful of fries tucked right inside — just like you’d build a souvlaki wrap. This is hands-down my favorite way to eat leftovers.
Lamb and beef keftedes — Swap the ground beef for ground lamb and keep the beef. Lamb brings a richer, slightly gamey flavor that pairs beautifully with the mint and oregano. This version leans even more traditional in some parts of Greece.
Other easy swaps
- No pork on hand? Ground sausage (sweet or hot Italian) subs in nicely.
- Ground turkey works too — see the recipe notes for the small ingredient adjustment.
- No bread? Use breadcrumbs plus a touch more milk to keep the mixture moist.

FAQs
You may also like
Cooked it? Rate it!
If you tried this recipe, I’d love to know how you liked it — drop a comment below or tag me on Instagram @thegreekfoodie__.


Greek Meatballs – Keftedes
Equipment
- Deep frying pan
Ingredients
- 1 lb ground beef
- 1 lb ground pork
- 8 slices white bread, with the crust cut off.
- 2 cups whole milk
- 1 large onion, grated. Keep the juices. I usually go for red onions.
- 2 cloves garlic , minced.
- 1 cup fresh spearmint leaves , finely chopped.
- 1 cup fresh parsley , finely chopped.
- ½ cup fresh oregano leaves , roughly chopped
- 2 tbsp extra virgin olive oil
- 1 teaspoon ground cumin
- 1 tbsp dried oregano
- 1 tablespoon dried spearmint, or mint
- 2 eggs
- 1 tbsp red wine vinegar
- 1 tablespoon red chili flakes
- 1 shot ouzo , or 1-2 tsp ground aniseed. Optional.
- sea salt
- freshly ground pepper
For frying
- 1/2 cup all purpose flour
- Extra light olive oil or sunflower oil
Instructions
- Soak the bread in the milk. Carefully squish the bread so most of the milk is out.
- In a large bowl, add the bread and all the other ingredients—season with salt and freshly ground pepper. Add the ouzo shot or 1-2 tsp ground aniseed. Mix everything and knead well until the mixture is moist and fluffy.
- Cover with a towel and leave in the refrigerator for at least 30 minutes to allow all the flavors to incorporate together well.
- Spread some flour on a plate. Use a small ice-cream scooper or a spoon or your hand and take about 2 tbsp of the mixture and shape it into a ball. Run ball in the flour, shake off the excess, and place on a clean surface until all your meatballs are ready for frying.
- In a deep frying pan, add enough oil to cover 2/3 of the pan. Turn the heat on to medium-high. When the oil is hot, fry the meatballs (in small doses), about 2-3 minutes tops on each side, until golden brown. Remove from heat and arrange them on absorbent paper to drain the excess oil.
Notes
- I suggest mincing the onion pretty well. I use my food processor because my knife skills aren’t perfect for dicing veggies very small. You can also grate it on the large holes of a coarse grater.
- If you don’t have ouzo, substitute with 1-2 tsp ground anise seeds or ground star anise. If none are available, omit them altogether.
- You can use breadcrumbs if you don’t have bread; add about 1/2 cup of milk to increase the mix’s moisture. You can substitute ground pork for ground sausage, such as sweet Italian or hot Italian, to give the meatballs a nice kick.
- If you have ground turkey, use the same ingredients apart from the bread. Substitute with 1/2 to 1 cup breadcrumbs (depending on how wet the ground turkey is) and add 1 tbsp ground coriander to the mixture.
Nutrition









I’m making this tonight! With fries! And green salad! Yum! X
Hope all the family liked them Eri! Thank you xo
I love a good meatball recipe. Perfect for pasta, subs or as an appetizer. We love Greek food. I know these would be a hit in our house.
Hope you like them Gloria! Thank you so much!
I really love meatballs and this Greek meatballs or keftedes recipe is making me crave right now. I will definitely try making this at home.
Hope you like them! Thank you so much Dennis!
They look delicious! Moist and tender, juicy and so tasty!
Thank you so much!
These meatballs look delicious! Thank you for the the step by step instructions, they will be helpful when I make them!
Thank you so much Denise.
This Greek meatballs are so easy and so good. My family adored these . The fresh herbs are good and smell so good with they are cooking. I served these with a simple salad and It was a hit.
Thank you Debbie! So glad you liked them!
We love Greek food, it just pack full of flavour and fresh ingredients. We have many recipes that we constantly cook but never heard of this one! Saving it to make for friends and family!
Thank you Laura!
These Greek meatballs are a delicious change of pace for weeknight dinners. They are perfect alongside a greek salad.
Thank you so much Sharon
Yum! Love the trick of cooking one first to see if the seasonings are right! Can I freeze these meatballs?
Yes, you can freeze them either cooked or uncooked for 3-4 months. Thank you so much!!
I love Greek flavors so I bet I’m gonna love these meatballs too. They sound super delicious – love the mint inside. Yum! I will save this recipe and give it a try. Can’t wait!
Thank you so much Natalie!
One can never have enough meatball recipes! This is such an amazing looking meatballs. It makes me drool!
Thank you so much Jo!
Love the Greek flavors in this! I’m not a meat-eater myself but know that my family would just love these flavorful meatballs!
Thank you so much Alena!
Hi could I fry them in a deep fat fryer? What temp and confirm 2 minutes they should be done?
Hi Nolene! You can definitely fry them in a deep fat fryer. My advice would be to set the temperature to 375 F and do a test drive with just one meatball first to determine how long to fry. Try 3 minutes at first and adjust accordingly. Also, once you determine the fry time do not overcrowd the deep fryer pan because it will lower the temperature. Fry in small batches. Good luck, come back and let me know how they came out. Thanks so much for making my keftedes! x Jenny
Wow, I am a huge fan of meatballs…and Greek food. How did I not know the Greek version is deep fried? I am missing out! They look amazing and so flavourful too. Gotta try this meatball method ASAP.
I used vegan mince but these were still delightful! I love all the classic Greek flavours that made them taste so authentic!
Yum, these look delicious! I have never added spearmint or mint to my meatballs – how interesting! Excited to give these a try!
I baked mine to help avoid reduce the amount of fat and they were delightful!
These meatballs were so much better than the regular plain meatballs we’re used to. They were packed with flavor and everyone really enjoyed them!
I love serving meatballs that are not covered in red sauce, so this recipe caught my eye. I don’t cook in Greek style but the ingredients are intriguing with the spearmint and anise flavor.
These meatballs are so flavorful and tasty! The addition of pork made them extra tender and juicy which is a big plus because there’s nothing worse than a dry meatball. Great recipe!
I love Greek meatballs. With a cool yogurt sauce on the side these are heaven…the touch of anise is perfect too! Love the flavorings here.
Your post is so informative! I love the flavourings that you have used for these meatballs and they look delicious!
Thank you so much Hayley! x
My family loves meatballs and these Greek meatballs did not disappoint . We loved the flavor and they held together nicely. Thanks for a great recipe !
Greek meatballs are ideal with French fries and a village salad. Enjoy!
Indeed! Thank you so much Darly! x Jenny