This post may contain affiliate links. Please read our privacy policy.

Homemade meatballs are a must-make classic. Whether you use them for spaghetti and meatballs, meatball subs, or as an appetizer, these flavorful meatballs are a great addition to so many meals. 

Overhead view of a white oval platter filled with baked homemade meatballs.

This time of year, I love sharing easy dinner recipes that can get your family through those busy fall weeknights.

I know that when you’re rushing from school pickup to sports practices or ballet or piano lessons, dinner is often the thing that gets forgotten about. But sooner or later, we’ve all gotta eat, ok?

So recipes like my Mississippi pot roast, homemade meat sauce, chicken pot pie casserole, taco casserole, and so many more are easy to turn to for a hearty weeknight meal.

These homemade meatballs are the latest on that list. They take a little bit of time to assemble, but are great for making in batches and freezing for later. I’ll walk you through how to do it!

White bowl of spaghetti topped with marinara and homemade meatballs.


If I say “spaghetti,” what’s the next word you think of?

Meatballs, obviously!

I know plenty of people who grew up in families that did big Sunday dinners where meatballs were often on the menu. That always made me think that flavorful, homemade meatballs were hard to make.

I couldn’t have been more wrong! 

Like my easy meatloaf, these homemade meatballs are simple to mix together. Once they are combined, you can freeze the meatball mix or cook and freeze the completed meatballs.

Make a big batch of meatballs on the weekend and pull them out of the freezer whenever you need a quick dinner that you know the whole family will love.

Cooked shallots and garlic being stirred in a black skillet with a wooden spoon.


These homemade meatballs are super flavorful. Packed with tons of herbs and Parmesan, they are far from a plain, boring meatball!

Ingredients you’ll need

I know this recipe has a longer ingredient list than some, but I promise that they’re all pretty simple ingredients and that they all have a purpose in this recipe.

Ground beef & ground pork: I like to use a 50/50 mix of ground beef and ground pork in my homemade meatballs. Some stores even sell a “meatball mix” of beef and pork that is already mixed together. If you can’t eat pork, you can always use 2 pounds of ground beef instead.

Eggs, sour cream, & milk: Each of these ingredients help keep the meatballs moist, in addition to helping bind them together. After all, we don’t want dry meatballs! You can use ricotta cheese in place of the sour cream if you prefer.

Ingredients for meatballs in a metal mixing bowl.

Italian-seasoned breadcrumbs: Breadcrumbs help bind the meatballs together. I like to use Italian-seasoned breadcrumbs to add extra flavor, but you could always use plain breadcrumbs and add some extra Italian seasoning.

Butter & olive oil: These are used to saute the shallots and garlic. I like to use both olive oil and butter for extra flavor.

Shallots & garlic: You can’t make meatballs without these ingredients! Shallots are so good here, but you could use some finely diced onion if you don’t have any shallots on hand. 

Parmesan cheese: Get the good parmesan cheese for this recipe. Trust me, freshly grated parmesan is worth the small effort! 

Fresh parsley: You’ll be shocked at how much flavor fresh parsley adds to this recipe. Definitely don’t skip this ingredient! 

Italian seasoning: If you didn’t realize yet, this meatball recipe is all about BIG flavor, so a little extra Italian seasoning goes a long way!

Meatball meat mixture in a metal mixing bowl set on a marble countertop.

Making this recipe

To make this recipe, start by whisking together the eggs, milk, and sour cream (or ricotta). Add in the breadcrumbs and let that mixture soak for 20 minutes.

While the breadcrumbs soak, saute the shallots in the butter and olive oil until the shallots have softened. This will take 3-5 minutes. Add the garlic and let it cook for another minute, just until the garlic is fragrant.

Cooking the garlic and shallots might feel like a silly extra step, but it deepens the flavor of both ingredients and makes sure you don’t end up with any pieces of raw shallot in the finished meatballs.

Once the breadcrumbs are finished soaking and the shallots and garlic have cooled a bit, add them to a big bowl with the ground meat, parmesan cheese, parsley, italian seasoning, and a couple of big pinches of salt and pepper.

Use your hands to mix this until well combined. I’ll be honest, I usually wear gloves to do this – it’s understandable if you don’t like touching raw meat!

Portioning the meatballs is easier after the mix has chilled for a bit, so place it in the refrigerator for about 20 minutes.

Portioned and rolled meatballs on a lined baking sheet, ready to be baked.

Seasoning tip

With most savory recipes, we want to season to taste. But you can’t taste raw meat, so how do you check the seasoning on this recipe?

We make a mini tasting meatball!

While the mix chills, take 1 tablespoons of the mixture and pat it into a small patty. Heat a skillet and sear the patty on both sides until cooked through.

Now you can taste the cooked patty and decide if the seasoning is right or if you need to add extra salt and pepper to the meat mixture.

Overhead view of baked meatballs on a parchment-lined baking sheet.

Shaping and cooking meatballs

When you’re ready to portion the meatballs, grab a cookie scoop. Use the scoop to portion all of the mix into 2-tablespoon portions, placing them on a lined baking sheet.

Once you have portioned the mix, roll each portion into a ball with your palms. You can coat your palms in olive oil or water first to prevent the meat from sticking to your hands. 

Try to resist the urge to squeeze the mix as you roll it; this would make the meatballs too dense. 

I prefer baked meatballs – I think it’s faster and easier. 

Place the shaped meatballs on a baking sheet and bake them at 350°F for 5 minutes. Flip them and bake for another 5 minutes.

I like to cut one meatball open to make sure they’re fully cooked before pulling them and serving them as desired.

If you prefer to pan fry your meatballs, cook them in about ½-inch of olive oil over medium-high heat for 1-2 minutes, or until the bottoms are golden brown. Flip and repeat until they’re cooked through. 

If you go the pan frying method, make sure you only cook about 5-6 meatballs at a time. You don’t want to overcrowd the pan.

White bowl filled with homemade meatballs set on a marble and wood platter.


There are three ways you can freeze these homemade meatballs for dinners later:

  1. Freeze the meat mixture. Once mixed, place it in a zip-top freezer bag and freeze for up to 3 months. Thaw before portioning, shaping, and cooking.
  2. Freeze the raw meatballs. After portioning and rolling, place the meatballs on a lined baking sheet. Place the baking sheet in the freezer for 1-2 hours, until the balls are frozen. Pop them into a zip-top freezer bag and freeze for up to 3 months. Thaw on a sheet tray before cooking.
  3. Freeze the cooked meatballs. After cooking, cool the meatballs completely. Place in a zip-top freezer bag and freeze for up to 3 months. 

My favorite method is to freeze the cooked meatballs. Depending on how you plan to use them, you may not even need to thaw them before reheating them! 

For example, you can toss them into the slow cooker frozen, cover with some quick marinara sauce, and let them simmer on low while you’re at work all day.

Homemade meatballs in a pan of marinara sauce being stirred with a wooden spoon.


The most classic way to use this homemade meatball recipe is for spaghetti and meatballs. Toss them with your favorite marinara and serve over cooked spaghetti with garlic bread

Don’t forget to add lots of fresh parmesan on top!

You can also use these meatballs to make meatballs subs, meatball sliders, or even use them as a simple yet delicious appetizer for parties!

Honestly, the options are as endless as the compliments you will get from your family after making these.

Meatball meat mixture in a metal mixing bowl set on a marble countertop.
Want to save this recipe?
Enter your email and get it sent to your inbox!
Please enable JavaScript in your browser to complete this form.

Homemade Meatballs

By: Jamie Lothridge
5 from 1 rating
Prep: 45 minutes
Cook: 10 minutes
Total: 55 minutes
Servings: 8
Homemade meatballs are a must-make classic. Whether you use them for spaghetti and meatballs, meatball subs, or as an appetizer, these flavorful meatballs are a great addition to so many meals. 


  • 2 eggs
  • 2 tablespoons sour cream or ricotta cheese
  • ¼ cup milk
  • 1 cup Italian-seasoned breadcrumbs
  • 2 tablespoon unsalted butter
  • 1 tablespoon olive oil
  • 2 shallots finely diced
  • 3 cloves garlic minced or grated
  • 1 pound ground beef I recommend using 80/20 ground beef
  • 1 pound ground pork
  • cup freshly grated Parmesan cheese
  • ⅓ to ½ cup finely minced fresh parsley
  • 1 teaspoon Italian seasoning
  • Salt and pepper to taste


  • In a small bowl, whisk the eggs with the milk and sour cream or ricotta; add the breadcrumbs and stir to combine. Let soak for 20 minutes. 
  • While the breadcrumbs are soaking, heat butter and olive oil in a skillet until the butter is melted. Add the shallots and cook until softened, 3-5 minutes, then add the garlic and cook for an additional minute. Remove from the heat and set aside. 
  • In a large bowl, place ground beef and pork along with parmesan, parsley, soaked breadcrumbs, Italian seasoning and the shallot mixture, along with a couple of large pinches of salt and pepper. Use your hands to mix until well incorporated. 
  • Place the meatball mixture in the fridge to chill for 20 minutes. This helps with portioning. 
  • While the mixture rests, take a small amount (about 1 tablespoon) of the mixture and pat it into a small patty; sear it in a skillet. Taste the patty and add more salt and pepper to the meatball mix if needed.
  • Preheat the oven to 350°F.
  • Using a cookie scoop (about 2 tablespoons), portion all of the meat onto a lined or sprayed baking sheet. Once portioned, take each meatball and roll it into a ball with your palms. Try not to squeeze the mix too tightly; you don’t want the meatballs to be dense.
  • Place the meatballs on a baking sheet and bake for 5 minutes. Flip the meatballs and bake for  an additional 5 minutes. Cut one meatball open to make sure it is cooked through; bake for additional time as necessary.
  • Add to pasta sauce, use in your recipe, or let cool and freeze for later.


  • Makes about 2 dozen meatballs.
  • To prevent the meatball mix from sticking to your hands while mixing and shaping, coat your palms in olive oil or wet your hands with water first.
  • You can pan fry the meatballs instead of baking them. To do so, in a large nonstick skillet, add about ¼-inch of olive oil. Heat over medium-high heat, then add 5-6 meatballs. Cook for 1-2 minutes, until the bottoms are golden brown, then flip and repeat. Depending on the size of your meatballs and how much oil you have in your pan, you may want to do a third side. Once cooked, remove meatballs from the pan. Repeat with the remaining meatballs.


Serving: 3meatballs, Calories: 498kcal, Carbohydrates: 15g, Protein: 37g, Fat: 31g, Saturated Fat: 13g, Polyunsaturated Fat: 15g, Trans Fat: 1g, Cholesterol: 169mg, Sodium: 445mg, Fiber: 1g, Sugar: 2g

Nutrition information is automatically calculated, so should only be used as an approximation.

5 from 1 vote (1 rating without comment)

Leave a comment

Your email address will not be published. Required fields are marked *

Recipe Rating

This site uses Akismet to reduce spam. Learn how your comment data is processed.