Prep the bread and onion: Soak the bread slices in milk or water for a minute, then squeeze out excess liquid.
Grate the onion on the small holes of a box grater to catch the juices. This moisture keeps the meat tender.
Mix the base: In a large bowl, combine the ground meat, grated onion with juices, squeezed bread, egg, garlic, parsley, mint, oregano, lemon zest, cumin, cinnamon, salt, and pepper.
Combine gently: Use your hands to mix until just combined. Don’t overwork the meat or the meatballs will turn dense.
Chill the mixture: Cover and refrigerate for 20–30 minutes.
This helps the flavors meld and makes the mixture easier to shape.
Shape the meatballs: With slightly wet hands, roll walnut-sized balls (about 1 to 1.5 inches in diameter). Aim for uniform size so they cook evenly.
Dust with flour: Lightly roll each meatball in flour, shaking off excess. This encourages a crisp crust and helps them keep their shape while frying.
Heat the oil: Add a generous layer of olive oil to a wide skillet and warm over medium heat until shimmering.
You want enough oil to coat the bottom well.
Fry in batches: Place meatballs in the pan without crowding. Cook 3–4 minutes per side, turning gently to brown all around, about 8–10 minutes total. Adjust heat to prevent burning.
Drain and rest: Transfer to a plate lined with paper towels.
Squeeze a little fresh lemon over the top while hot for extra brightness.
Serve: Plate with tzatziki or Greek yogurt, lemon wedges, and a sprinkle of chopped parsley. Add a simple tomato-cucumber salad or warm pita on the side.