Go Back
+ servings
Fried meatballs in marinara sauce in white bowl with basil garnish.

Easy Italian Pan Fried Meatballs (Beef Pork Veal)

Italian Pan Fried Meatballs are moist, tender and so flavorful from a ground beef, pork and veal combination, sharp Pecorino cheese, fresh herbs and just the right blend of aromatics, hand-torn bread and love! Seriously, though, this recipe is foolproof, easy to make, and creates beautiful aromas throughout your kitchen as the meatballs are quickly pan fried in a skillet on the stovetop.
5 from 11 votes
Prep Time 30 minutes
Cook Time 30 minutes
Total Time 1 hour
Course Main Course, Side Dish
Cuisine Italian
Servings 8 servings


  • 4 large eggs, beaten
  • ½ cup whole milk
  • 2 heaping cups torn or diced day-old bread (loosely packed)
  • 1 cup grated Pecorino Romano cheese
  • ½ cup finely chopped yellow onion (about 1 large onion)
  • ¼ cup chopped fresh basil leaves
  • ¼ cup chopped flat-leaf parsley
  • 1 Tbsp minced garlic
  • 2 tsp salt
  • 1 tsp black pepper
  • 2 pounds ground meat (equal parts beef/veal/pork–See Note.)
  • Oil, for frying


  • Prep all ingredients according to specifications above.
    (Please see the section above in the blog post for Step-By-Step instructions with photos.)
  • Whisk the eggs and milk together in a large bowl.
    4 large eggs,, ½ cup whole milk
  • Then, immerse the bread in the egg/milk mixture (make sure it is fully immersed) and let it sit for about 5 minutes to allow the bread hydrate.
    2 heaping cups torn or diced day-old bread
  • Mix in the cheese, onions, fresh herbs, garlic, salt and black pepper, and stir well.
    1 cup grated Pecorino Romano cheese, ½ cup finely chopped yellow onion, ¼ cup chopped fresh basil leaves, ¼ cup chopped flat-leaf parsley, 1 Tbsp minced garlic, 2 tsp salt, 1 tsp black pepper
  • Gently combine the bread mixture with the ground meat and mix lightly until all ingredients are well-combined. Be careful not to over-mix as doing so may result in tough meatballs. Let this mixture sit for about 15 minutes. It can also be made one day in advance and sit overnight in the refrigerator, covered with plastic wrap.
    2 pounds ground meat
  • Always pan-fry a small amount of the meatball mixture and taste test to check seasonings and texture before portioning the whole batch. Adjust seasonings if necessary.
  • Using a portion scoop or measuring cup, portion mixture into approximately 2-3-ounce portions, about a ¼ cup each (or whatever size you like), and roll them into round balls. (Tip: Wet your hands a little to make rolling easier.)
  • Add enough oil to a large, non-stick skillet to cover the bottom of the pan by about ¼-½”. Heat the oil over medium heat until bubbles form around the tip of a wooden spoon inserted in the oil.
  • Then, gently transfer the raw meatballs to the hot oil. Do not overcrowd the pan! Brown multiple sides of the meatballs until cooked through (until an internal temperature of 165˚F is reached). (After making one or two meatballs, you will know when they are done without testing them.) This will take about 6 to 10 minutes per meatball, depending on the size.
  • Then, transfer them to either a rack over a sheet pan or a paper towel-lined plate (to drain excess oil) or directly to a pot of sauce. Don’t forget to enjoy one or two hot out of the pan plain with some salt!
  • Alternatively, you can brown the meatballs and let them finish cooking in the sauce. Depending on how many I am making and if I am serving them on the same day, I will do this. But, more often than not, I make a double batch of these meatballs, fry them, cool them, then store them in a freezer bag in the freezer so that I have meatballs whenever I want! They freeze beautifully.
  • The serving possibilities are numerous! See Serving Suggestions above for more about this. Buon Appetito!


  • In this recipe, I use a traditional ground beef, pork and veal blend (equal amounts of each) and it creates a rich and uniquely-flavored meatball. But, you can absolutely use 100% beef with this recipe or 50/50 ground meat and pork. If you are not sure what to use, experiment and see what you like! Each type of meat contributes its own unique flavors to the meatballs.
  • Regardless of the exact blend of meats used, try not to use a very lean meat, if possible, for the juiciest meatballs. Fat equals flavor and moisture and it is really important with this dish! I use either a 80/20  or 85/15 (lean/fat) ratio, based on what is available. This ratio used in the recipe below will create the most flavorful and balanced, juicy and tender meatballs!
  • While breadcrumbs can be used in a pinch, diced bread is really the best option for a lighter meatball with great texture. If you are using breadcrumbs, start with 1 cup plain breadcrumbs and add more (up to 1¼ cups) if the mixture is too wet.
  • Use either a pure (not extra-virgin) olive oil or a neutral oil with a high smoke point, such as avocado oil, for the pan-frying.
  • Be sure to use either a non-stick pan or a seasoned cast iron skillet for the best results. Otherwise, the meatballs may stick to the pan and you will be miserable. Note that if you cook the meatballs in batches, you may need to add additional oil to the pan during the cooking process as it gets absorbed.
  • If the meatball is placed in the pan before the oil is hot enough, it will absorb too much oil, become soggy and possible fall apart.
  • If you are transferring the browned meatballs directly to a pot of sauce, you don’t need to fully cook them as they will finish cooking in the simmering sauce.
  • This recipe makes 25 to 30 (¼ cup uncooked portion) meatballs. Make the meatballs any size or shape that you want! The yield will change, however.
  • If you don’t have fresh herbs, you can use 1 Tbsp each dried basil and parsley as a substitute.
  • To bake instead of pan frying these meatballs, preheat oven to 425˚F and arrange a rack in the center of the oven. Place meatballs on a parchment-lined sheet pan at least ½” apart from each other. (Tip: If you’d like a browner meatball, lightly spray the tops of the raw meatballs with oil before placing the sheet pan in the oven.)  Put the sheet pan in the oven and roast the meatballs for about 20 minutes, depending on size. Rotate the sheet pan once about halfway through the cooking process. The meatballs are finished cooking when they have reached an internal temperature of 165˚F. Use a stem thermometer to test the internal temperature.
  • To store, cool meatballs completely, then refrigerate the meatballs in an airtight container for up to 5 days or freeze them in a freezer container or bag for up to 3 months. The meatballs do not need to be completely thawed before reheating.
Recipe by Mangia With Michele. Please visit my site for more great cooking inspiration!
If you try this recipe, please share a photo on INSTAGRAM or FACEBOOK and tag it @MangiaWithMichele and #MangiaWithMichele. I’d love to see it!
Tried this recipe?Let us know how it was!