With a deliciously cheesy filling, including three types of cheese, savoury ground beef and sautéed spinach, this recipe for stuffed shells with ground beef is a classic comfort food meal that’s so satisfying and great for feeding a crowd.

Just like my homemade lasagna, this recipe for stuffed shells with ground beef is just as comforting but requires a tad less work.
I remember years ago, being a child, avoiding “shell pasta” because it made me think of little crunchy bits. And, if you know me, I have a weird thing about shells, especially when it comes to eggs. If I happen to find a random piece of shell in my scrambled eggs, that’s it. Meal over. I guess we all have our quirks, right?
Thankfully, I’m over that (at least when it comes to shell pasta, not the egg shells) because it would be a huge shame to miss out on this stuffed pasta shell recipe.
Each pasta shell is jam-packed with a creamy, savoury filling, it’s topped with pasta sauce and a generous layer of melty cheese. I mean, what’s not to love?
Ingredients
- Jumbo pasta shells: I used 8 ounces or about 30 shells for this recipe.
- Olive oil: For cooking the spinach and ground beef
- Ground Beef: I used lean ground beef. If you use a ground beef with more fat content, just drain the excess grease from the beef after it has cooked.
- Vegetables: Baby spinach, yellow onion and garlic.
- Cheese: Three type of cheese are used in this stuffed pasta shells recipe, including mozzarella, ricotta and Parmesan.
- Egg
- Seasoning: Italian seasoning, crushed red pepper flakes, ground nutmeg, salt and black pepper
- Pasta sauce: I used a store-bought tomato based pasta sauce that was four cheese flavour.

How To Make Stuffed Shells With Ground Beef
Here is an overview of how to make ground beef stuffed pasta shells (full details are in the recipe card below):
Cook the pasta
Cook the jumbo pasta shells to al dente according to the package directions. You don’t want to overcook your pasta shells because they will finish cooking in the oven.
Tip: Cook a few extra pasta shells than needed just in case some break as you are filling them.
Prepare the filling and sauce
- Cook the spinach in a sauté pan in a little olive oil. Once the spinach is cool enough to handle, squeeze it dry of any excess moisture with a clean tea towel, then chop.
- Heat some olive oil in the same sauté pan, then cook the ground beef. Add the onion and cook until softened, then stir in the garlic until it’s nice and fragrant. Allow the mixture to cool a tad.
- Make the stuffed shell filling by mixing together in a bowl the shredded mozzarella cheese, ricotta cheese, Parmesan cheese, egg, the seasoning, sautéed spinach and half of the cooked ground beef.
- In another bowl, combine the pasta sauce (reserve ½ cup for the baking dish) with the remaining half of the cooked ground beef. It’s nice to have some of the ground beef in the filling and some in the sauce. Having the ground beef in the sauce makes it extra substantial and yummy.

Assemble and bake
- Spread the reserved ½ cup of pasta sauce over the bottom of a baking dish.
- Fill the pasta shells with the ricotta cheese filling.
- Top the stuffed shells with the remaining pasta sauce, then sprinkle over some shredded mozzarella cheese.
- Cover the baking dish with some aluminum foil (carefully removing the aluminum foil partway through baking) and bake the stuffed shells until they’re heated through, the sauce is bubbly and the cheese is melted.

How To Stuff the Pasta Shells
You can generously fill the shells with the ricotta filling mixture. Surprisingly, they can hold more than what you would think.
You have a couple of options to fill the pasta shells: either with a small spoon (like a soup spoon) or place the filling in a piping bag fitted with a plain round piping tip (that’s big enough to get the filling through). Use whatever you prefer, really!
What To Serve With It
Any of these sides pair deliciously with stuffed pasta shells:
- Caesar salad or mixed green salad
- Steamed green beans
- Roasted broccoli
- Panko Parmesan crusted asparagus
- Garlic bread
- Focaccia

Leftovers and Storage
Properly store any leftovers in an airtight container (or store in the baking dish and cover well with plastic food wrap), then store in the refrigerator. Use within 3 to 4 days. Reheat before serving.
Reheating Leftovers
To reheat stuffed pasta shells, preheat the oven to 350 degrees Fahrenheit. Then place the pasta shells (along with the tomato sauce) in a baking dish, cover with aluminum foil and bake for 20 to 30 minutes or until everything is nicely heated through.
Alternatively, you can place whatever portion of stuffed shells you are reheating in a microwave-safe dish and reheat on 1-minute intervals until heated through.
Tips and Variations
- Shred the mozzarella cheese yourself versus using pre-shredded (you’ll end up with a meltier cheese that way).
- You can substitute the fresh spinach for frozen … just thaw and squeeze dry of excess moisture before using in your filling, no need to sauté it. Also, depending on the variety of spinach you use, you may want to chop it before combining with the ricotta cheese mixture.
- As mentioned, cook the pasta shells to al dente according to the package directions. They will finish cooking in the oven. Plus, they’re easier to fill that way.
- I used a store-bought pasta sauce, which was a great time saver. It was a little less than three cups or about 22 ounces. If your jar of pasta sauce is a little larger, for example, and you end up using 3 cups of pasta sauce, that’s perfectly fine.
- Speaking of sauce, if you want to make homemade, go for it!
- Rather not use ground beef? Try ground turkey instead.

More Yummy Pasta Recipes To Try
If you make this recipe for stuffed shells with ground beef, be sure to leave a comment below!

Stuffed Shells With Ground Beef
Ingredients
- 8 ounces jumbo pasta shells, about 30 jumbo pasta shells plus a few extra in case some break
- 2 teaspoons olive oil, divided
- 1 (5-ounce) container baby spinach
- 1 pound lean ground beef
- 1 small yellow onion, peeled and chopped
- 4 cloves garlic, minced
- 3 cups shredded mozzarella cheese, divided
- 1 (16-ounce) container ricotta cheese, I like to use whole milk ricotta cheese
- 1 cup grated Parmesan cheese
- 1 large egg
- 1 teaspoon Italian seasoning
- ½ teaspoon crushed red pepper flakes
- ½ teaspoon ground nutmeg
- ½ teaspoon salt
- ½ teaspoon freshly ground black pepper
- 2 ¾ cups pasta sauce, divided (about a 650-ml or 22-ounce jar)
- Chopped parsley or torn basil leaves, garnish to taste (optional)
Instructions
- Preheat oven to 350 degrees Fahrenheit.
- Cook pasta shells according to the package instructions to al dente. Drain and rinse with cold water, then drain again. Set aside.
- Meanwhile, heat 1 teaspoon of olive oil in a large sauté pan. Add the spinach and cook over medium heat, stirring occasionally, until wilted, about 3 to 4 minutes. Remove from the pan and allow to cool. Once cool enough to handle, place the spinach in a clean tea towel to squeeze any excess moisture from it (you don't want to water down your stuffed shells). Chop the spinach (that way, it'll be nicely distributed throughout your ricotta filling later). Set aside.
- Using the same sauté pan, heat the remaining 1 teaspoon of olive oil over medium heat. Add the ground beef and cook, breaking the ground beef into small pieces and stirring occasionally, until the ground beef is cooked through, about 8 to 10 minutes.
- Add the onion to the ground beef and cook, stirring occasionally, until softened, about 5 minutes. Stir in the garlic and cook until fragrant, about 30 seconds. Drain any excess grease from the pan, if necessary. Allow the ground beef to cool slightly.
- In a large mixing bowl, combine 1 cup of shredded mozzarella cheese, the ricotta cheese, Parmesan cheese, egg, Italian seasoning, crushed red pepper flakes, ground nutmeg, salt, black pepper, the sautéed spinach and half of the cooked ground beef. Mix until everything is well combined.
- In a medium mixing bowl, combine the pasta sauce (reserve ½ cup for the baking dish) with the remaining half of the cooked ground beef.
- Spread the reserved ½ cup of pasta sauce over the bottom of a 9-inch x 13-inch baking dish.
- Generously fill each pasta shell with the ricotta mixture, then place upright in the baking dish. Pour the remaining pasta sauce (the portion with the cooked ground beef) over the stuffed shells and sprinkle over the remaining 2 cups of mozzarella cheese.
- Cover the baking dish with aluminum foil and bake for 25 minutes. Carefully remove the aluminum foil and continue to bake the stuffed shells for another 10 to 15 minutes until the cheese is nicely melted, the filling has heated through and the sauce is bubbly. If desired, garnish with parsley or basil (or a little of both). Serve and enjoy!
A note on times provided: appliances vary, any prep and/or cook times provided are estimates only.
© Girl Heart Food Inc. Photographs and content are copyright protected.
Tried this recipe?
If you do make this recipe, thank you!! It would mean so much if you could leave a comment below. Love to know how you enjoyed it, and it helps other readers too!
Valerie A Richard says
I made this last evening and I can tell you that it was a hit! My 6 year old grandson had 2 servings and so did the adults, lol!
The flavors and textures are excellent!
Dawn | Girl Heart Food says
That’s wonderful to hear, Valerie!! I’m so happy that you and your family enjoyed the recipe. Thank you very much!!
Valentina says
My mom used to make something very similar. So not only will I make this because it’s sounds incredible, but it also brings back delicious food memories. 🙂 ~Valentina
Michelle says
Absolutely love love love stuffed shells with ground beef! So full of cheesy, beefy flavour!
David @ Spiced says
Funny note about those egg shells – I get it, though! Good thing you got over that fear of the word shells because these stuffed shells are pretty much the best comfort food ever! 🙂 It’s not even 8am here yet, but I’m pretty sure I’d be ok with a big plate of these stuffed shells for breakie!
Dawn | Girl Heart Food says
Lol, right?! Thanks so much, David!