Panzerotti Pugliesi are one of the most irresistible examples of Italian street food: small, crescent-shaped fried calzones made with soft, leavened dough and filled with tomato and melted mozzarella. Fried until golden and slightly crisp on the outside, they stay wonderfully soft inside, with a hot, cheesy center that is best enjoyed straight from the fryer.

As with many traditional Italian recipes, there isn’t just one way to make panzerotti. In Puglia, recipes can vary from family to family, with different proportions, ingredients, and little tricks passed down through generations.
The panzerotti recipe I’m sharing here was taught to us by a friend from Puglia and her family. Their version uses a combination of durum wheat semolina and wheat flour, with both water and milk in the dough, and the classic tomato and mozzarella filling.
What Are Panzerotti Pugliesi?
Panzerotti are a traditional street food from Puglia, in Southern Italy. They are made from small rounds of leavened dough filled, folded into a half-moon shape, carefully sealed, and fried until puffed and golden. The classic filling is wonderfully simple: tomato and mozzarella.
Their origins are often linked to the old Italian tradition of avoiding waste. Leftover bread dough could be turned into small filled pastries using inexpensive ingredients already available at home. Over time, panzerotti became one of Puglia’s best-known street foods, particularly associated with Bari and its surrounding area.
Although they may look like small calzones, there is an important difference: a calzone is generally larger and baked, while traditional Puglian panzerotti are smaller and fried. They should not be confused with Neapolitan pizza fritta either, which belongs to a different regional tradition and is often made with fillings such as ricotta.
Ingredients You’ll Need
Panzerotti are made with simple ingredients, but choosing the right flour, mozzarella, and tomatoes makes a real difference in the final result.
Semola rimacinata: Finely ground durum wheat semolina gives the dough its characteristic flavor and a slightly more structured texture. Make sure you use semola rimacinata, which is much finer than regular coarse semolina.
Type 0 flour: Combined with the semolina, it helps create a soft, elastic dough that is easy to stretch and seal. All-purpose flour is a good substitute if Italian type 0 flour isn’t available.
Whole milk: Adds softness to the dough and is part of the family recipe we’re using for these panzerotti.
Water: Use it lukewarm to help create a soft, workable dough.
Fresh yeast: Gives the dough its rise and light texture. Dry yeast can also be used; you’ll find the substitution in the FAQ below.
Extra virgin olive oil: Adds flavor and helps keep the dough tender.
Salt: Essential for flavor and for balancing the dough.
Tomatoes: Choose crushed or strained tomatoes that are naturally thick rather than watery. Too much liquid can make the panzerotti difficult to seal and more likely to open during frying.
Mozzarella: Use a mozzarella that can be drained thoroughly. Excess moisture is one of the main things to avoid when making fried panzerotti. Drain it well and shred or tear it into small pieces before using.
Oregano or fresh basil: Either can be used to give the tomato filling its classic Italian aroma.
Sunflower oil: Its neutral flavor makes it a good choice for deep-frying the panzerotti without overpowering the flavor of the dough and filling.
How to Make Panzerotti Pugliesi






Prepare the Dough
Pour the lukewarm milk into a mixing bowl of a stand mixer and dissolve the fresh yeast in it. Add the durum wheat semolina and begin mixing with the dough hook (1).
Slowly pour in the lukewarm water and continue kneading for a couple of minutes. Add the type 0 flour and knead until the ingredients begin to come together into a dough. Finally, add the extra virgin olive oil and salt. Continue kneading for a few more minutes, until you have a smooth, soft, and elastic dough.
You can also prepare the dough by hand, following the same order of ingredients and kneading until smooth and elastic.
Transfer the dough to a large bowl and cover it. Leave it to rise in a warm, draft-free place for about 3 hours.
Divide and Shape
Transfer the risen dough to a work surface and divide it into 12 equal portions, about 70 g (2.5 oz) each. Shape each portion into a smooth ball, arrange them on a lightly floured surface or tray, cover, and leave them to rise for about 1 hour (2).
Prepare the Filling
While the dough is rising, prepare the filling.
Place the tomatoes in a bowl and season with a small drizzle of extra virgin olive oil, salt, and oregano. If you prefer, replace the oregano with fresh basil.
Drain the mozzarella very thoroughly, especially if you’re using fresh mozzarella, then shred or tear it into small pieces.
Combine the seasoned tomato and mozzarella and mix gently. Keep the filling aside until you’re ready to shape the panzerotti.
Shape and Fill the Panzerotti
Heat the frying oil in a large, deep pan while you begin shaping the panzerotti.
Take one dough ball and flatten it into a small round, similar to a miniature pizza. Place a generous spoonful of tomato and mozzarella filling in the center, making sure to leave the edges clean (3). Fold the dough over the filling to create a half-moon shape. Press the edges firmly together with your fingertips to seal them (4).
For an especially secure seal, trim the curved edge neatly with a pastry wheel, then press it again with the tines of a fork.
Fry
Fry the panzerotti in small batches in hot oil until puffed and golden, about 2 minutes per side (5).
Drain them on paper towels and continue with the remaining dough.
For the panzerotti you plan to eat immediately, shape and fill only as many as you can fry right away. Leaving raw, filled panzerotti at room temperature for too long allows moisture from the tomato and mozzarella to soften the dough, making them more likely to open during frying. If you’re preparing panzerotti specifically to freeze, freeze them promptly after filling and sealing.
Serve the panzerotti hot, when the dough is golden and crisp on the outside and the tomato and mozzarella filling is still wonderfully melted (6).
Tips for Perfect Panzerotti
Panzerotti are simple to make, but a few details can make the difference between perfectly puffed, golden panzerotti and ones that open while frying.
- Drain the mozzarella very well. Excess moisture is one of the biggest problems when frying panzerotti. Cut the mozzarella ahead of time and let it drain thoroughly before mixing it with the tomato.
- Use thick tomatoes. Avoid a very watery tomato sauce. The filling should be moist but not runny, otherwise it can soften the dough and make sealing more difficult.
- Don’t overfill them. It may be tempting to add extra tomato and mozzarella, but too much filling makes the panzerotti harder to close and more likely to burst in the oil.
- Keep the edges clean. Tomato or oil on the rim of the dough can prevent it from sealing properly. Leave a clean border around the filling before folding.
- Seal them carefully. Press the edges firmly with your fingertips, trim with a pastry wheel, and finish by pressing with a fork. Pay particular attention to the corners of the half-moon.
- Don’t leave filled panzerotti waiting. Shape and fill only a few at a time, then fry them immediately. The longer the filling sits inside the raw dough, the more moisture it releases into it.
- Keep the frying oil hot. If the oil isn’t hot enough, the dough absorbs too much oil instead of quickly puffing and turning golden. Fry only a few panzerotti at a time so the oil temperature doesn’t drop too much.
- Serve them right away. Panzerotti are at their best freshly fried, when the outside is golden and slightly crisp and the mozzarella inside is still hot and melted.
How to Store and Reheat Panzerotti
Panzerotti are at their best when eaten immediately after frying, while the outside is still golden and slightly crisp and the mozzarella inside is hot and melted.
If you have leftovers, let them cool completely, then store them in an airtight container in the refrigerator for up to 1 day.
Reheat them in a hot oven or air fryer until heated through and crisp again. Avoid the microwave if possible, as it tends to make the fried dough soft and chewy.
Frequently Asked Questions
Yes. You can prepare the dough the day before and let it rise slowly in the refrigerator. Keep it well covered, then bring it back to room temperature before dividing and shaping it into balls. Allow the dough to become soft and relaxed before stretching and filling the panzerotti.
Yes. Panzerotti can be frozen raw after they have been filled and carefully sealed. Arrange them in a single layer on a tray and freeze until firm, then transfer them to a freezer-safe container or bag. When you’re ready to cook them, fry the panzerotti directly from frozen without thawing. They will need a little more time than freshly prepared panzerotti to cook through completely. Panzerotti can also be frozen after frying, although the texture won’t be quite as good as when they are freshly fried.
Semola rimacinata is a finely milled flour made from durum wheat. It is widely used in Southern Italian cooking for breads, focaccia, fresh pasta, and other doughs. Don’t confuse it with the much coarser semolina often sold for making pasta, porridge, or desserts. For this panzerotti dough, look for a package labeled semola rimacinata di grano duro or finely milled durum wheat flour. If you can’t find it, you can make the panzerotti using wheat flour instead, although the texture and flavor of the dough will be slightly different.
For the 5 g of fresh yeast used in this recipe, you can substitute approximately 2 g of dry yeast. The exact way you add it depends on the type of yeast you’re using. Some dry yeasts can be mixed directly with the flour, while others need to be activated in lukewarm liquid first, so always check the instructions on the package.

Panzerotti Pugliesi with Tomato and Mozzarella
Ingredients
- 5 g fresh yeast
- 150 ml lukewarm whole milk
- 300 g finely ground durum wheat semolina semola rimacinata
- 150 ml lukewarm water
- 200 g Italian type 0 flour or all-purpose flour
- 2 tablespoons extra virgin olive oil
- 9 g fine salt
- 150 g mozzarella well drained
- 100 g crushed or strained tomatoes
- ½ teaspoon dried oregano or a few fresh basil leaves
- Salt to taste
- A small drizzle of extra virgin olive oil
- Sunflower oil as needed for deep-frying
Instructions
- Dissolve the fresh yeast in the lukewarm milk. Add the semola rimacinata and begin mixing. Gradually add the lukewarm water, followed by the type 0 flour. Add the extra virgin olive oil and salt and knead until the dough is smooth, soft, and elastic.
- Transfer the dough to a bowl, cover, and leave to rise in a warm, draft-free place for about 3 hours.
- Divide into 12 equal portions, about 70 g (2.5 oz) each. Shape into smooth balls, cover, and leave to rise for about 1 hour.
- Season the tomatoes with a drizzle of extra virgin olive oil, salt, and oregano or basil. Drain the mozzarella very thoroughly, shred or tear it into small pieces, and gently combine it with the tomato.
- Flatten one dough ball into a small round. Place a spoonful of filling in the center, leaving the edges clean. Fold into a half-moon and press the edges firmly together. Trim with a pastry wheel and press again with the tines of a fork for a secure seal.
- Heat the sunflower oil in a deep pan. Shape and fill only a few panzerotti at a time so they can be fried immediately. Fry in small batches for about 2 minutes per side, or until puffed and golden.
- Drain on paper towels and serve immediately while hot.
Notes
- Drain the mozzarella thoroughly to prevent excess moisture from weakening the dough.
- Don’t overfill the panzerotti and always keep the edges free of tomato and oil so they seal properly.
- Fill and fry the panzerotti progressively rather than leaving them filled at room temperature.
- Raw, filled panzerotti can be frozen promptly after shaping and fried directly from frozen.
- Panzerotti are best served immediately after frying.
