This is the best Italian meatballs recipe that you can make at home! Big, tender, flavorful meatballs simmered in a tomato sauce just like the famous restaurant, Cafe Martorano.
With a perfect balance of three meats, beef, pork, and veal, combined with fresh parsley, quality Parmesan, and a few secret techniques that ensure these baseball-sized meatballs stay so tender you can easily slide a fork down them.
No more settling for pre-made frozen versions that you can bounce off the floor, or wondering if your homemade attempts will turn out right.

Over 20 years ago, my husband and I took a vacation to Fort Lauderdale. At that time, my New Jersey boss told me that we must go to Cafe Martorano and order their meatballs because they are the best. To this day, they are still the best we've ever had.
I tested this recipe from their restaurant cookbook for two years while looking for any videos on the web to eliminate the guesswork that can make homemade meatballs feel intimidating.
I learned 4 key steps while testing this recipe:
- The best meatballs are pan-fried. I'm converted to this cooking method and will show you a less messy way to fry below. Poaching and oven-baking do not produce the same texture and flavor after simmering the meatballs in a marinara sauce.
- The meat ratio needs to be equal parts ground chuck, ground pork, and ground veal. Skipping the veal makes a less tender meatball.
- Use a lot of quality bread, crust and all, that has been soaked in water to create soft and moist meatballs.
- Don't just dump everything into the bowl and knead the mix. Mix in 3 different phases to get the best final product.
Ready to make the most amazing Italian-American restaurant meatballs ever? Your family will be asking for seconds. (My son can eat 9 meatballs!)
Aside from traditional spaghetti and meatballs, you can also serve these meatballs as a heavy appetizer with crusty bread, pile them into a meatball sub, pair them with a chopped Italian salad, or spoon them over creamy polenta. Check out my main dish recipes for other Sunday supper meals like this simple homemade lasagna.
Jump to:
Why This Recipe Is Different
- Use 2 types of bread. This recipe uses a lot of fresh bread with the crust, followed by dried bread crumbs.
- Knead the mix 3 different times.
- Makes a large batch of big, baseball-sized meatballs for a large crowd or freeze for later.
- Uses water instead of milk for the panade.
- Simple seasonings, with no need for chopping onions or garlic, make it faster to mix.
Common Problems With Meatballs
- Sticking to the pan: Caused by not using enough oil, moving them too early, or the pan not being hot enough before adding meatballs.
- Dense, heavy meatballs: Often caused by using lean ground meat (like 93/7 beef), omitting the veal in the meat mixture, or not enough panade (bread and water mixture) that keeps them tender.
- Bland taste: Under-seasoning the meat mixture or not tasting and adjusting before cooking causes this. Sear a small amount of the meat mixture in a skillet to cook it. Then, taste to see if it needs more salt or garlic powder. Keep adjusting, if needed.
Homemade Meatball Ingredients
Here are the ingredients needed to make the best Italian meatballs recipe.
For The Meatballs:

- Ground Beef: Use a quality butcher for your meat. I suggest using ground chuck. Alternatively, ground beef mixed at 80/20 or 80/15 fat content works. Avoid lean ground beef at 93/7 or leaner.
- Ground Pork: You can buy it unseasoned. You can substitute Italian sausage, but it's not my preference. I find the extra seasonings are too much.
- Ground Veal: With a mild flavor and tender texture, it helps produce a tender meatball. It's usually sold frozen at the grocery store, local butcher, or Italian market.
- Hoagie Rolls: Select good-quality bread with some weight and chew to it. Hot dog buns will not work because they are too soft and cottony. Alternatively, a loaf of Italian bread will work, too.
- Fresh, Flat-Leaf Italian Parsley: Italian parsley helps bring a herby brightness to the mixture. Please don't use dried parsley.
- Fresh Basil: To top the meatballs before serving. Wait to tear the leaves into smaller pieces.
- Bread Crumbs: I suggest using plain, unseasoned breadcrumbs.
- Eggs: To bind the mixture and help keep it from falling apart.
- Parmigiano-Reggiano: Find the real Italian cheese. Costco sells it. Grate over the meatballs. The rind can be added to the tomato sauce for more depth.
- Garlic Powder: This is dried garlic that has been ground in the spice aisle. Use the unsalted version.
- Diamond Crystal Kosher Salt: I prefer the brand Diamond Crystal because its shape is lighter and flakier, and it dissolves faster, which helps prevent over-seasoning. If using Morton kosher or table salt, reduce the salt measurements by half.
- Neutral Cooking Oil: I use canola oil or vegetable oil for pan-frying.
For the Marinara Sauce:

- Canned Tomatoes: Whole, peeled tomatoes are preferred because they provide a deep, balanced flavor and a good sauce consistency that is not too thick or too thin. I recommend the big Nina canned tomatoes from Costco that are not DOP or Cento DOP certified tomatoes.
- Extra Virgin Olive Oil: A good quality olive oil is best. Smell and taste your oil to make sure you find it appealing.
- Garlic: Real garlic, not the jarred stuff.
- Crushed Red Pepper Flakes: They provide a tiny bit of heat to the sauce. You can use just a pinch or more to your liking.
- Bay Leaf: Bay leaves and braises go together. This herb provides subtle herbal and floral notes. You can locate fresh bay leaves at the store in the produce section next to other herbs in plastic clamshells.
See the recipe card below for ingredient measurements.
Variations
Here are some ideas on how to change this recipe to better suit your needs.
- Marinara Sauce: Save a little time and substitute homemade marinara with a good-quality store-bought brand (I love Lidia's and Rao’s) for the best flavor. You will need 100 ounces of store-bought tomato sauce to make this recipe.
- Ground Veal: Substitute ground chuck instead. This will make a 2:1 ratio of beef to pork. I prefer the meat ratio to have a bit more beef than pork, rather than 50/50 beef to pork.
- Hoagie Rolls: Substitute a 1-pound loaf of Italian, French, or Ciabatta bread.
- Parmigiano Reggiano Cheese: Substitute Pecorino Romano cheese. This aged sheep's milk cheese brings a subtle saltiness and complex, slightly funky flavor. I buy this cheese at Costco.
- Make smaller meatballs to serve as an appetizer, kept warm in a slow cooker.
Equipment
This is the equipment needed to make meatballs in a tomato sauce.
- 2 large bowls: 1 to soak the bread and the other to mix the meatballs.
- rimmed 13 x 18-inch sheet pan
- parchment paper
- Food scale to measure the weight of a consistent-sized meatball.
- 8 to 10-quart heavy-bottomed stock pot to simmer the meatballs in marinara sauce.
- 7-quart Dutch oven or enameled cast iron pot for pan frying.
- A thermometer to check the temperature of the oil.
- Tongs and a metal spatula to flip the meatballs when pan-frying them.
How To Make Meatballs From Scratch
Assemble The Meatballs (20 minutes)

Step 1: Chop the parsley and set it aside.

Step 2: Cut or tear the bread into ½-inch pieces. Soak the bread in a large bowl of water for 5 to 10 minutes. Squeeze as much water out of the bread and add it to a very large bowl.

Step 3: Add the ground chuck, pork, veal, salt, pepper, and garlic powder to the bowl.

Step 4: Mix well with your hands.

Step 5: Add the eggs, Parmigiano Reggiano, and parsley to the meat mixture.

Step 6: Mix by hand again until incorporated. It will be wet and sticky.

Step 7: Add ¼ cup of dried breadcrumbs and mix the final time. If the mixture is still too wet and sticky, making it hard to form or stay in a ball, add more dried breadcrumbs, 2 tablespoons at a time.

Step 8: Using a scale, roll the meat mixture into 5-ounce balls, making 17 meatballs. Place the meatballs on a parchment-lined sheet pan. Place in the fridge to chill while making the sauce.
Make The Marinara Sauce (10 minutes)
Heat the olive oil in a large, 10-quart heavy-bottom pot over medium heat.

Step 1: Add the garlic slices to the oil. They should start sizzling. Stir frequently for 1-3 minutes until they just barely start to toast.

Step 2: Add the chili flakes. Turn the burner to low. Stir constantly for 30 seconds.

Step 3: Add the whole peeled tomatoes and their juices by either hand-crushing each tomato into the pot or using a potato masher to crush the tomatoes after they are added to the pot. Dispose of any old basil leaves from the can.

Step 4: Add the bay leaves and kosher salt to taste. Maintain a low simmer.
Cook The Meatballs (1 hour)
Preheat 1-inch of canola oil to 325℉ in a Dutch oven.

Step 1: Brown the meatballs in batches by searing 5 to 6 at a time in the oil for 6-8 minutes, turning once. Do not overcrowd the pot. If the meatballs are sticking, you are trying to turn them too soon. Wait a minute or two, then try again. Monitor the oil temperature and heat to maintain 325℉.

Step 2: Place the meatballs in the pot of marinara sauce and simmer for 30 minutes until cooked through. Do not let them boil.

Step 3: Remove the bay leaves from the sauce when you see them. Keep warm up to 2-3 hours until ready to use.
If Serving With Spaghetti
This recipe makes enough sauce for 2-2½ pounds of spaghetti. I like to coat the cooked pasta with some of the marinara sauce, then serve the sauce-coated meatballs over the top of the pasta and garnish with torn basil and Parmigiano Reggiano cheese before serving.
How To Pan-Fry Without Making A Mess
If you skim past meatball recipes that are fried because it's too much work or messy, I urge you to reconsider and give it a try. The crunchy outside of the meatballs brings big flavor to the sauce. Check out these quick tips below:
- Use a deeper, heavy-bottomed pot, like a Dutch oven, rather than a skillet. The higher sides will keep the splatters contained. Cast-iron does an excellent job of retaining the heat. I use a budget-friendly, 7-quart, enameled cast-iron Dutch oven.
- Pour 1 inch of oil into the pot and heat it over a high setting.
- Try to maintain the temperature of the oil at 325℉. The oil will cool down after adding the meatballs.
- Cook in batches to get a good sear and prevent overcrowding the pot.
- I like to cover my hand with a glove-style hot pad while turning the meatballs to protect my hand from splatters.
- Use tongs to flip the meatballs. I also suggest using a metal spatula to help loosen them before flipping.
What to do with the oil: Let the oil cool to room temperature. Triple-bag it by nesting three plastic grocery bags inside each other, pour in the cooled oil, tie tightly, and dispose of it in your trash can.
Make-Ahead Instructions
Day Before Serving (choose one):
- Roll meatballs and store covered on a sheet pan in the fridge. Fry and simmer at least 1 hour before serving.
- Make the complete recipe, cool to room temperature, and refrigerate in the covered pot. Reheat over low heat, stirring occasionally, 45 minutes before serving.
Day of Serving: Make up to 4-5 hours ahead and keep warm at 180°F.
Storage Information
Refrigerator: Store covered for up to 4 days. Reheat on the stovetop or in the microwave until warmed through.
Freezer (up to 3 months):
- Uncooked Meatballs: Freeze on a sheet pan, then transfer to a freezer bag. Thaw in fridge 1 day before frying.
- Cooked With Sauce: Freeze in an airtight container. Thaw in fridge 1 day before reheating over low heat for 45 minutes.

FAQ
Ground veal is frozen in the grocery stores in my area. Sometimes, butchers sell a meatloaf mix which has equal parts ground beef, pork, and veal. Alternatively, you can replace the veal with ground beef.
Use an instant-read meat thermometer to verify that the internal temperature in the center is at least 160℉.
It depends on the appetite of those you are serving. If you are making 5-ounce meatballs, light eaters prefer just 1 meatball, while my husband can eat 2-3.
I prefer to form the meatballs and freeze them without cooking. I don't recommend frying them first, then freezing, because they need to finish cooking in the sauce.
If you don't have a food scale and try to form larger, 5-ounce meatballs, you can use a ⅔ measuring cup and keep the mixture below the level of the cup.
Yes, you can gently poach the meatballs in the sauce until the internal temperature is 160℉. I have to say that I don't care for it. They are so tender and tend to fall apart more easily; some of the fat splits out, and the sauce is not as good.
Yes, you can roast the meatballs on the parchment-lined rimmed sheet pan at 425℉ for 30 minutes. Personally, I don't like them as well. They do not turn a crunchy, deep brown like the pan frying method.

Did you try any of these tips? Leave a comment below to let us know how it turned out! Thanks for visiting!
📖 Recipe

The Best Italian Meatballs Recipe (Cafe Martorano Copycat)
Equipment
- 2 large bowls
- rimmed 13 x 18-inch sheet pan
- parchment paper
- food scale
- 8 to 10-quart heavy-bottomed stock pot to simmer the meatballs
- 7-quart dutch oven for pan frying
- thermometer
- tongs
- metal spatula
Ingredients
Meatballs
- ½ cup Italian parsley, finely chopped
- 1 pound Italian hoagie bread (about 4 rolls)
- 1 pound ground chuck
- 1 pound ground pork
- 1 pound ground veal
- 2 teaspoons Diamond Crystal kosher salt
- 1½ teaspoons ground black pepper
- 1½ teaspoons garlic powder
- 2 eggs, mixed well
- ½ cup Parmigiano Reggiano (plus extra for serving)
- ¼-½ cup unseasoned breadcrumbs
- canola or vegetable oil for frying (1-inch depth in pot, about 2-3 cups)
- fresh basil (to garnish)
Marinara Sauce
- ½ cup olive oil
- 12 cloves fresh garlic, thinly sliced
- ½ teaspoon crushed red chili flakes
- 106 ounces canned whole peeled tomatoes (San Marzano style)
- 6 bay leaves
- ½ teaspoon Diamond Crystal kosher salt
Instructions
Mix The Meatballs (20 minutes)
- Chop the parsley and set it aside.
- Cut or tear the bread into ½-inch pieces. Soak the bread in a large bowl of water for 5 to 10 minutes. Squeeze as much water out of the bread and add it to a very large bowl.
- Add the ground chuck, pork, veal, salt, pepper, and garlic powder to the bowl. Mix well with your hands.
- Add the eggs, Parmigiano Reggiano, and parsley to the meat mixture. Mix by hand again until incorporated. It will be wet and sticky.
- Add ¼ cup of dried breadcrumbs and mix. If the mixture is still too wet and sticky, making it hard to form or stay in a ball, add more dried breadcrumbs, 2 tablespoons at a time.
- Using a scale, roll the meat mixture into 5-ounce balls, making 17 meatballs. Place the meatballs on a parchment-lined sheet pan. Place in the fridge to chill while making the sauce.
Make The Marinara Sauce (10 minutes)
- Heat the olive oil in a large 10-quart heavy-bottom pot over medium heat.
- Add the garlic slices to the oil. They should start sizzling. Stir frequently for 1-3 minutes until they just barely start to toast. Add the chili flakes. Turn the burner to low. Stir constantly for 30 seconds.
- Add the whole peeled tomatoes and their juices by either hand-crushing each tomato into the pot or using a potato masher to crush the tomatoes. Dispose of any old basil leaves from the can.
- Add the bay leaves and kosher salt to taste. Maintain a low simmer.
Cook The Meatballs (1 hour)
- Preheat 1-inch of canola oil to 325℉ in a Dutch oven.
- Brown the meatballs in batches by searing 5 to 6 at a time in the oil for 6-8 minutes, turning once. Do not overcrowd the pot. If the meatballs are sticking, you are trying to turn them too soon. Wait a minute or two, then try again. Monitor the oil temperature to maintain 325℉.
- Place the meatballs in the pot of marinara sauce and simmer for 30 minutes. Do not let them boil.
- Remove the bay leaves from the sauce when you see them. Keep warm up to 2-3 hours until ready to use. Garnish with torn basil and Parmigiano cheese before serving.
Video
Notes
Make-Ahead Instructions:
Day Before Serving (choose one): Roll meatballs and store covered on a sheet pan in the fridge. Fry and simmer at least 1 hour before serving. Make the complete recipe, cool to room temperature, and refrigerate in the covered pot. Reheat over low heat, stirring occasionally, 45 minutes before serving. Day of Serving: Make up to 4-5 hours ahead and keep warm at 180°F.Storage Information:
Refrigerator: Store covered for up to 4 days. Reheat on the stovetop or in the microwave until warmed through. Freezer (up to 3 months):- Uncooked Meatballs: Freeze on a sheet pan, then transfer to a freezer bag. Thaw in fridge 1 day before frying.
- Cooked With Sauce: Freeze in an airtight container. Thaw in fridge 1 day before reheating over low heat for 45 minutes.
Nutrition
The provided nutritional information is an estimate per serving. Accuracy is not guaranteed.









Janel says
The best meatballs - chef’s kiss!
Ali Mairet says
So glad you enjoyed them! Ali
Barbara W says
Easy to follow, great recipe!
Entire group loved it
Ali Mairet says
Yay! Glad they loved it!