Skip to Content

Cheesy Meatball Casserole

When I need a dinner that feels cozy, filling, and guaranteed to make everyone happy, I come back to this cheesy meatball casserole. It has all the things I love in a comfort food meal: tender meatballs, pasta, rich tomato sauce, and plenty of melty cheese baked until golden and bubbly.

Cheesy Meatball Casserole for Easy Weeknight Dinners

On busy days, I am always looking for lazy dinners that still taste homemade, and this one does exactly that. It is perfect when I want something hearty for the family, something I can prep ahead, or something that gives me the same comfort-food feeling as meatball sub casserole, cheesy meatballs, or other make ahead casseroles.

Why You’ll Love This Casserole

  • it is classic comfort food without being fussy. The sauce is simple and flavorful, the meatballs stay tender, and the cheesy topping makes the whole dish feel extra cozy and satisfying. It is one of those dinners that smells amazing while it bakes, and by the time it comes out of the oven, everyone is ready to eat.
  • it is practical. I use everyday ingredients, it feeds a family, and it is easy enough even if you are not super confident in the kitchen. I can make parts of it ahead, switch things out based on what I have on hand, and still end up with a dinner that feels homemade and comforting every single time.

Ingredients

For the casserole

  • 1 tablespoon olive oil – Used to sauté the vegetables and build the first layer of flavor in the sauce. You can swap in avocado oil or any neutral cooking oil if that is what you have.
  • 1 medium onion, diced – Yellow or brown onion works best.
  • 2 small carrots, diced– These add a little natural sweetness to the sauce and help balance the acidity of the tomato puree. If you want a smoother sauce, you can grate them instead of dicing.
  • 2 medium garlic cloves, minced – Fresh is best, but jarred minced garlic works in a pinch.
  • 1 bottle (24.5 ounces) passata or tomato puree – If you only have crushed tomatoes, you can use those, though the sauce will be a little chunkier.
  • 10 ounces small macaroni, such as elbows, ditalini, or small shells – Small pasta shapes work best because they fit nicely around the meatballs and hold onto the sauce. You can also use rotini or penne if needed.

For the meatballs

  • 1 pound 80% lean ground beef – If you want a slightly lighter option, you can use 85% or 90% lean ground beef, but they may be a little less juicy.
  • 3 tablespoons panko breadcrumbs – Regular breadcrumbs work too.
  • 3 tablespoons grated parmesan – Pecorino Romano is a good substitute if that is what you have.
  • 1 large egg – Helps hold the meatball mixture together so the meatballs keep their shape while baking.
  • 1/2 teaspoon dried oregano
  • 1/2 teaspoon dried basil
  • 1 cup fresh parsley, roughly chopped, divided – Half goes into the meatballs and the rest is used at the end for a fresh, bright finish. If needed, you can use less, but fresh parsley really helps lift the whole dish.

For finishing

  • 1 1/2 cups shredded mozzarella cheese – You can use an Italian cheese blend too for extra flavor.
  • Sea salt and black pepper, to taste

How to make cheesy meatball casserole

1. Start by preheating your oven to 350°F. Give it time to fully heat so the casserole bakes evenly. Lightly spray a casserole dish with nonstick cooking spray. This helps prevent sticking and makes cleanup easier later.

2. Place a medium skillet on the stove over medium heat and add the olive oil. Once the oil is warm, add the diced half of the onion, the diced carrots, and the minced garlic. Season lightly with salt and pepper. Cook the vegetables for about 3 to 4 minutes, stirring occasionally, until they start to soften and the onion looks translucent. You do not want the garlic to brown, so keep the heat moderate and stir often.

3. Pour the passata or tomato puree into the skillet with the softened vegetables. Stir everything together well. Let the sauce simmer for 6 to 8 minutes so the flavors can blend and the sauce can thicken slightly. Stir it once in a while so it does not catch on the bottom. Taste and add a little more salt or pepper if needed.

4. While the sauce simmers, bring a large pot of salted water to a boil. Add the pasta and cook it until just al dente, which means it should still have a little bite to it. This is important because the pasta will continue cooking in the oven. Aim for about 2 to 3 minutes less than the package directions say. Drain the pasta well, then return it to the pot.

5. Spoon about one-third of the tomato sauce over the drained pasta and stir until the pasta is evenly coated. This step gives the pasta flavor right from the start and helps keep it from drying out during baking. Transfer the coated pasta into your prepared casserole dish and spread it into an even layer.

6. In a medium mixing bowl, add the ground beef, the grated half of the onion, panko breadcrumbs, parmesan, egg, dried oregano, dried basil, and half of the chopped parsley. Season generously with salt and pepper. Using clean hands, gently mix everything together just until combined. Try not to overmix, because working the meat too much can make the meatballs dense and tough. The mixture should feel well combined and easy to shape.

7. Roll the meat mixture into about 14 to 16 meatballs. Try to keep them roughly the same size so they cook evenly. Place the meatballs directly on top of the pasta layer in the casserole dish. Space them out as evenly as you can.

8. Pour the rest of the tomato sauce evenly over the meatballs. Make sure the meatballs get well coated so they stay moist while baking. Then sprinkle the shredded mozzarella all over the top. Try to cover the surface evenly so every serving gets that cheesy finish.

9. Bake the casserole. Cover the casserole dish tightly with aluminum foil and place it in the oven. Bake for 25 minutes. This covered baking time helps the meatballs cook through and keeps the casserole moist. After 25 minutes, carefully remove the foil. Return the casserole to the oven and bake for another 15 minutes. This second baking time allows the cheese to fully melt and turn lightly golden on top. The casserole is ready when the meatballs are cooked through, the sauce is bubbling around the edges, and the cheese looks melted and slightly browned.

10. Take the casserole out of the oven and let it rest for about 5 minutes before serving. This gives everything a chance to settle a little, which makes it easier to scoop. Sprinkle the remaining fresh parsley over the top right before serving for a fresh pop of color and flavor.

Tips and Tricks

  • Do not overcook the pasta before baking. Slightly undercooked pasta is exactly what you want here, because it finishes cooking in the oven and stays perfectly tender instead of mushy.
  • If you want a smoother sauce, dice the carrots very small or grate them instead. This helps them blend in more as they cook.
  • Make sure the meatballs are similar in size. That helps them bake evenly and makes serving easier.
  • Let the casserole rest a few minutes before serving. It will hold together better and be less messy to scoop.
  • For even more cheesy flavor, add a little extra parmesan on top before baking uncovered.

Storage

Store leftovers in an airtight container in the refrigerator for up to 4 days. The flavors actually get even better after a day, so this is a great recipe for leftovers.

To reheat, place a serving in the microwave and heat until hot throughout, or reheat larger portions in the oven at 350°F, covered with foil, until warmed through. If it seems a little dry, add a spoonful of water or extra sauce before reheating.

You can also freeze it. Let the casserole cool completely, then wrap it well or transfer portions to freezer-safe containers. Freeze for up to 2 months. Thaw overnight in the refrigerator before reheating for best texture.

This casserole is hearty enough to serve on its own, but it is especially good with a simple green salad or garlic bread on the side. A crisp salad balances the richness, and bread is perfect for soaking up extra sauce.

It is a great dinner for busy weeknights, Sunday family meals, casual guests, or even meal prep. Because it is filling and easy to portion, it also works well for bringing to a friend or serving at a casual potluck.

Frequently asked questions

Can I make this casserole ahead of time?

Yes, absolutely. You can assemble the casserole earlier in the day, cover it, and keep it in the fridge until ready to bake. If it is going into the oven cold from the fridge, you may need to add 5 to 10 extra minutes to the baking time.

Can I use frozen meatballs instead of homemade?

Yes. If the frozen meatballs are already fully cooked, you can use them as a shortcut. Just layer them over the pasta, add the sauce and cheese, and bake until everything is hot and bubbly. This is one of the easiest ways to turn it into a super practical lazy dinner.

How do I know when the meatballs are done?

The meatballs should be cooked through and no longer pink in the center. If you want to check with a thermometer, ground beef meatballs should reach 160°F internally.

Why did my casserole turn out dry?

Usually this happens if the pasta was overcooked before baking or if there was not enough sauce. Be sure to cook the pasta just to al dente and make sure the meatballs and pasta are well covered with sauce before baking.

Can I freeze it before baking?

Yes. Assemble the casserole, wrap it tightly, and freeze it before baking. For best results, thaw it overnight in the fridge before baking. You may need to add a little extra baking time if it is still very cold.

What can I serve with cheesy meatball casserole?

A green salad, roasted vegetables, garlic bread, or even a simple side of steamed broccoli all pair well with it. Since the casserole is rich and filling, lighter sides work especially well.