Stuffed shells packed with a creamy spinach and cheese filling, nestled in a silky, roasted butternut squash sauce.
There are infinite ways to use butternut squash and pasta is one of the best. I’m not going to lie, making stuffed shells is a tedious labor of love, but so incredibly worth the result! Stuffed shells are traditionally smothered in marinara sauce, however in the spirit of fall, I opted for a luscious, creamy butternut squash sauce. The sauce is really perfect for any pasta. I recommend making a double batch of sauce and freezing half so that you can enjoy it a few times during the season. It’s so good.
There are quite a few steps to making the butternut squash pasta sauce and the stuffed shells, but the good news is that most of the work can be done in advance. The even better news is that this is a perfect dish for feeding a crowd and once the work is done, there’s no last minute cooking frenzy trying to get a meal on the table. You can prep and assemble everything and then just heat and serve. Toss up a simple green salad and throw a baguette on the table and you’re done.
*This post contains affiliate links — please see my disclosure for details*
Step by step for making butternut squash stuffed shells
- Roast the squash – Roasting brings out the natural sweetness in butternut squash and really makes the flavors in the pasta sauce sing. Many recipes call for simmering raw, cubed squash in broth, and that will work too, but the results from roasting are truly unmatched so don’t skip it. Cut your butternut squash in half lengthwise, scoop out the seeds and the stringy stuff, drizzle the cut side with olive oil and roast flesh side down on a parchment lined baking sheet at 375 degrees for 45 minutes to an hour until soft and fork tender. Wait till it’s cool enough to handle and scoop out the flesh. You can do this a day or two ahead of time.
- Make the sauce – The sauce comes together very easily with a few simple ingredients. This recipe calls for heavy cream, but you can also keep the sauce vegan by using any unsweetened non-dairy milk and serve it with any pasta of your choice. It’s a very flexible recipe. Sauté some onion, shallot and garlic, add broth and squash, puree and stir in cream. Done.
- Make the filling – I love to use fresh baby spinach in this recipe, but frozen will work just fine too. The key to making the filling is to squeeze out as much moisture out of the spinach as possible. I wilt down a whole lot of spinach in a skillet with a little olive oil then transfer to a cutting board to cool. Chop it up and then squeeze it out in handfuls over the sink before I add it to my filling.
- Cook the pasta – Cook the pasta just shy of being done. About 2 minutes less than the package instructions indicate. The shells bake in sauce so the pasta will finish cooking in the oven and come out perfectly al dente. Cooking it all the way results in mushy pasta and no one wants that.
- Stuff the shells – This is where it gets a little tedious. Stuffing the filling inside the pasta shells is the most involved step, but you can do this step the night before or even the morning of and just leave it covered in the fridge until you’re ready to bake!
Ok, so now that I’ve convinced you to make these, let’s go over the ingredient list.
What do I need to make Butternut Squash Stuffed Shells?
For the sauce:
Butternut Squash – One medium squash will yield about a quart of sauce which is the perfect amount for this recipe. I highly recommend making double the sauce so you have some stocked in the freezer!
Onion – Sweet onion or yellow onion is best.
Garlic – pretty standard.
Shallot – adds another layer of flavor to the sauce.
Veggie Broth – you could use chicken or veggie broth. I use veggie to keep the sauce vegetarian for more versatility in other dishes. My pantry is always stocked with cartons of broth from Thrive Market.
Olive Oil – the sauce is simple and you will taste all of the ingredients. Use good olive oil for gently sautéing onions and garlic.
Heavy Cream – Stirring in heavy cream gives the sauce a creamy, luxurious texture. If you want to keep the sauce vegan for another use, stir in some unflavored, unsweetened non-dairy milk. I recommend cashew milk.
For the shells:
Jumbo pasta shells – About half a pound. Salt your pasta water!
Spinach – I like fresh but frozen will do.
Ricotta cheese – Makes the filling deliciously creamy
Fontina cheese – Fontina is melty, buttery, sweet and nutty and I much prefer it to mozzarella in this dish. It pairs amazingly with the butternut squash sauce.
Parmesan cheese – Any cheesy pasta dish screams for parm!
Egg – An egg helps bind the filling together.
Garlic – Garlic in both the sauce and the filling.
Red pepper flakes – a pinch or two gives a nice kick.
Salt – I use a pinch of salt at different steps in this recipe. Some to the sauce and some in the spinach to help draw out the moisture while it’s wilting. I also season the pasta water with salt. I find that the cheese adds enough saltiness to the filling and that I don’t need to add any to the mixture.
I really love this recipe. I hope you do too!
Butternut Squash Stuffed Shells
For the sauce:
- 1 medium butternut squash about 2 cups softened and mashed after roasting
- 1 small or half of a large yellow or sweet onion about 1 ½ cups, diced
- 1 shallot about ¼ cup, minced
- 3 cloves garlic minced
- 1 ½ cups veggie broth
- ¼ tsp salt
- 2 tbsp olive oil
- ½ cup heavy cream or unsweetened non-dairy milk for vegan sauce
For the stuffed shells:
- 8-10 oz jumbo shell pasta 25-30 shells
- 10 oz fresh baby spinach
- 15 oz ricotta cheese
- 8 oz fontina cheese grated
- ½ cup grated parmesan plus more for serving
- 1 clove garlic minced
- 1 egg
- 1 tbsp olive oil
- salt to taste
- pinch or two of red pepper flakes
- torn basil or crispy fried sage leaves for garnish
- Preheat oven to 375 degrees. Carefully cut butternut squash lengthwise. Scoop out seeds, drizzle flesh with 1 tbsp olive oil and place cut side down on a parchment lined baking sheet. Roast for 45 min to an hour until squash is soft and fork tender. When it's cool enough to handle, scoop out the flesh and discard skin.
- Heat 2 tbsp olive oil in a heavy bottom saucepan on medium heat. Add onion and shallot and cook gently till translucent. Add three cloves minced garlic and cook for another minute or two until fragrant. Add roasted squash, veggie broth, ¼ tsp of salt and cook for another 3-4 minutes. Puree with an immersion blender or transfer to a regular blender and puree until smooth. Return sauce to pot and stir in cream. Check seasoning and adjust if necessary.
- In a large skillet, heat 1 tbsp olive oil. Add baby spinach and a pinch of salt. Toss frequently with tongs until just wilted. You may have to do this in two batches depending on how large your skillet is. Set wilted spinach aside on a cutting board and let cool.
- While the spinach is cooling, add ricotta, egg, 1 clove minced garlic, ⅔ of the fontina and parmesan cheese and a pinch of red pepper flakes to a large mixing bowl.
- Once the spinach is cool enough to handle, squeeze as much moisture out as possible in handfuls, roughly chop and add to the cheese mixture. Stir until everything is well combined.
- Bring a big pot of water to a boil and add a few pinches of salt. Cook pasta till about 2 minutes shy of package instructions. They should be pliable but not fully cooked all the way through.
- Preheat the oven to 375 degrees. Spread about ¾ cup of pasta sauce in the bottom of a 9x13 baking dish. Once the pasta is cool enough to handle, spoon about a tablespoon of filling into each shell and nestle seam side up into the baking dish on top of the layer of sauce. I like to shingle them at a slight angle so they stand up against each other.
- Once the baking dish is filled with stuffed shells, pour the remaining sauce all over the shells and sprinkle the rest of the fontina and parmesan cheese on top.
- Cover with aluminum foil and bake at 375 for 15 minutes. Remove foil and bake for another 15-20 minutes until cheese is melted and bubbly.
- Serve garnished with torn basil or crispy fried sage leaves!