Cannelloni al Forno with Roasted Tomato Sauce and Parmesan

Prefer not to cook?

Order one of our ready-made meals and get it delivered to your door.

Browse our meals
Cannelloni al Forno with Roasted Tomato Sauce and Parmesan

This classic Italian cannelloni fills dry pasta tubes with a creamy spinach-ricotta mixture, then bakes them under a rich roasted tomato sauce and silky béchamel. The key trick is roasting the tomatoes first for deep, caramelized flavor. Allow about 2 hours total. Serves 4 to 6 people.

Quick Info

Prep Time
40 min
Active Time
50 min
Total Time
2 hrs
Difficulty
Medium
Serves
4-6
Cost Level
$$
Make-Ahead
Partially
Cuisine
Italy

Why Does This Cannelloni Turn Out So Much Better Than the Usual Version?

Traditional Italian technique calls for roasting the tomatoes instead of simmering them on the stove. Roasting at 400°F / 200°C caramelizes the natural sugars on the cut surface, creating a deep, savory-sweet flavor that a quick sauce simply cannot match. Professional culinary team call this browning reaction the foundation of great tomato flavor.

Food science shows that moisture is the enemy of a good filling. Spinach holds a surprising amount of water, and if you skip squeezing it dry, that water leaks into the ricotta and makes the filling loose and soggy. Wringing the spinach bone-dry in a kitchen towel keeps the filling firm, rich, and perfectly textured after baking.

The béchamel is not just a topping - it acts as a protective blanket over the pasta. Classical French and Italian baked pasta dishes both rely on this technique: the creamy sauce traps steam inside the dish so the dry pasta tubes absorb moisture from all sides and cook through to a tender, yielding texture without drying out.

Estimated nutrition per serving

Estimated from ingredient weights — not lab-tested.

Calories
1006
Protein
56g
Fat
76g
Carbohydrates
90g

Ingredients

Recipe yields 4-6 servings

For the Roasted Tomato Sauce

1200 g Ripe plum tomatoes (San Marzano style)
halved lengthwise for roasting
30 g (6 cloves) Garlic cloves, unpeeled
roasted whole alongside the tomatoes
50 g (3½ tablespoons) Extra-virgin olive oil
for drizzling over tomatoes before roasting
10 g (2 teaspoons) Caster sugar
balances the acidity of the tomatoes during roasting
8 g (4-5 sprigs) Fresh thyme sprigs
scattered over tomatoes while roasting
30 g (2 tablespoons) Extra-virgin olive oil
stirred into the finished sauce
to taste Fine sea salt
for seasoning the sauce

For the Spinach-Ricotta Filling

500 g (2 cups) Whole milk ricotta
drained overnight in a sieve if watery
400 g (about 14 oz) Fresh spinach
wilted, squeezed bone-dry, and finely chopped
60 g (¾ cup) Parmigiano-Reggiano, finely grated
for the filling
40 g (2 large yolks) Egg yolks
binds and enriches the filling
3 g (about ¼ teaspoon freshly grated) Whole nutmeg
freshly grated - classical Italian spinach-ricotta seasoning
to taste Fine sea salt
for seasoning the filling
4 g (about ¾ teaspoon) Black pepper, freshly ground
for the filling

For the Béchamel

60 g (4 tablespoons) Unsalted butter
for the roux base
60 g (½ cup) Plain flour (00 or all-purpose)
for the béchamel roux
700 g (2¾ cups) Whole milk, warm
warm milk prevents lumps - heat gently before using
2 g (1 leaf) Bay leaf
infused in the warm milk, then removed
to taste Fine sea salt, black pepper, and nutmeg
for seasoning the finished béchamel

For the Pasta and Topping

250 g (approximately 16-18 tubes) Dried cannelloni tubes
no pre-cooking needed - fill them dry
150 g (about 5 oz) Mozzarella fior di latte, torn
scattered on top for a melted, blistered finish
60 g (¾ cup) Parmigiano-Reggiano, finely grated
for the topping

Instructions

Make the Roasted Tomato Sauce

  1. 1

    Roast the Tomatoes (The Flavor Foundation)

    Preheat your oven to 400°F / 200°C (fan 355°F / 180°C). Halve the plum tomatoes lengthwise and arrange them cut-side up on a large baking tray. Tuck the unpeeled garlic cloves between them. Drizzle with 50 g of olive oil, sprinkle with the sugar and a pinch of salt, and lay the thyme sprigs over the top. Roast for 45 to 55 minutes until the tomatoes are collapsed, caramelized at the edges, and deeply fragrant. The sugar and slow heat create a golden-brown crust on the cut surface - this is where all the deep, savory flavor comes from.

  2. 2

    Blend the Sauce

    Once the tomatoes are cool enough to handle, squeeze the roasted garlic cloves out of their papery skins directly into a blender or food processor - the flesh will be soft and sweet. Add all the roasted tomatoes and their juices. Blend until smooth, then pass through a coarse sieve if you prefer a silkier texture. Stir in the remaining 30 g of olive oil and taste for seasoning. The sauce should be intensely savory, slightly sweet, and bright. Set aside.

Make the Filling and Béchamel

  1. 3

    Dry Out the Spinach (The Most Important Step)

    Wilt the fresh spinach in a dry, very hot pan in batches for 1 to 2 minutes until fully collapsed. Transfer to a colander and press firmly with the back of a spoon. Then wrap the spinach in a clean kitchen towel and twist hard over the sink to squeeze out as much water as possible. Finely chop the squeezed spinach. This step is critical - wet spinach will make the filling loose and cause the pasta to steam unevenly rather than bake properly.

  2. 4

    Mix the Ricotta Filling

    In a large bowl, combine the drained ricotta, chopped spinach, 60 g of Parmigiano-Reggiano, the 2 egg yolks, freshly grated nutmeg, salt, and black pepper. Mix thoroughly until the filling is uniform and smooth. Taste and adjust the seasoning - it should be well-seasoned, slightly nutty from the nutmeg, and rich. Transfer to a piping bag or a large zip-lock bag with one corner snipped off. This makes filling the tubes clean and fast.

  3. 5

    Make the Béchamel (Warm Milk is the Secret)

    Warm the milk in a small saucepan with the bay leaf until steaming but not boiling (around 150°F / 65°C), then remove the bay leaf. In a separate medium saucepan, melt the butter over medium heat. Add all the flour at once and stir constantly with a wooden spoon for 2 minutes - cooking the roux this way removes the raw flour taste. Remove from heat and pour in the warm milk in a slow, steady stream, whisking vigorously after each addition to prevent lumps. Return to medium heat and stir continuously until the sauce thickens to a consistency that coats the back of a spoon, about 5 to 7 minutes. Season with salt, pepper, and a pinch of nutmeg. The béchamel should be pourable but not thin - it will loosen a little more in the oven.

Fill, Assemble, and Bake

  1. 6

    Fill the Cannelloni Tubes

    Pipe the ricotta-spinach filling into each dry cannelloni tube, filling from both ends if needed to make sure each tube is completely full. Do not pre-cook the tubes. They will absorb moisture from the surrounding sauces during baking and cook perfectly from raw - this also prevents them from tearing or becoming slippery during filling.

  2. 7

    Layer the Baking Dish

    Reduce the oven to 375°F / 190°C (fan 340°F / 170°C). Spread a generous layer of roasted tomato sauce across the bottom of a large baking dish (approximately 30x22 cm / 12x9 inches). This prevents the pasta from sticking and makes sure the bottom tubes are surrounded by moisture. Arrange the filled cannelloni in a single snug layer over the sauce. Pour the remaining tomato sauce over and around the tubes, then spoon the béchamel evenly over the top, covering the pasta completely. The béchamel acts as a protective blanket, trapping steam inside the dish so the pasta cooks through without drying out.

  3. 8

    Add the Topping and Bake (Covered, Then Uncovered)

    Scatter the torn mozzarella across the béchamel surface, then finish with the remaining 60 g of grated Parmigiano-Reggiano. Cover the dish tightly with foil and bake for 30 minutes - this covered phase steams the pasta through. Remove the foil and bake for a further 15 to 20 minutes until the top is golden, bubbling, and blistered in places. The pasta is done when a skewer or thin knife inserted into the center of a tube meets no resistance.

  4. 9

    Rest Before Serving (Do Not Skip This)

    Remove the dish from the oven and rest uncovered for 10 minutes before serving. This resting time allows the sauces to settle and the layers to firm up slightly, making it much easier to cut and lift clean portions. Serve with extra Parmigiano-Reggiano at the table and a simple green salad alongside.

The weekly recipe note

Enjoyed this recipe? Get the next one first.

One new recipe each week from Christophe: global flavor, French technique, and practical home-cook timing.

Chef-testedWeeklyOne email

By signing up, you agree to receive emails from Mr. Saucy.

No spam. Just one useful recipe note when there is something new to cook.

Tips & Tricks

Your filling is watery and the pasta turns out soggy:

The spinach was not squeezed dry enough. After wilting, wrap it in a clean kitchen towel and twist it like a tourniquet over the sink until absolutely no more liquid comes out. This single step makes the biggest difference in the whole dish.

You want to save time on the day of serving:

Make the roasted tomato sauce and the béchamel the day before - both keep well in the fridge for up to 48 hours and the flavors actually deepen overnight. Assemble and bake on the day you want to serve, which cuts active cooking time down to about 20 minutes.

Your béchamel has lumps in it:

Pour it through a fine sieve while it is still hot and whisk vigorously. Lumps almost always happen when cold milk is added too quickly. Next time, use warm milk and add it gradually in three slow additions while whisking constantly.

You want a richer, more restaurant-style filling:

Stir 2 tablespoons of mascarpone into the ricotta filling. It adds a subtle sweetness and makes the texture noticeably more luxurious without changing the character of the dish.

The top is browning too fast before the pasta is cooked through:

Re-cover loosely with foil for the last 10 minutes of baking. On the flip side, if the top is not coloring after the foil comes off, switch to the grill or broiler setting for the final 3 to 4 minutes - watch it closely as it can go from golden to burnt very quickly.

Frequently Asked Questions

Can I make this cannelloni ahead of time and reheat it?

Yes! This is one of the best pasta dishes for making ahead. Assemble fully, cover tightly with cling film, and refrigerate for up to 24 hours before baking. Add 10 extra minutes to the covered baking phase since it starts cold. Leftovers reheat beautifully in a 340°F / 170°C oven covered with foil for 20 minutes.

Do I really need to roast the tomatoes, or can I use tinned tomatoes?

You can use good-quality tinned San Marzano tomatoes for a quicker sauce - simmer them with the garlic, olive oil, and a pinch of sugar for 25 minutes. But roasting fresh tomatoes concentrates their sugars and creates caramelized depth that tinned tomatoes simply cannot replicate. If you have the time, roasting is absolutely worth it.

My cannelloni tubes are still hard in the middle after baking - what went wrong?

This usually means the dish was not covered tightly enough during the first baking phase, so the steam escaped and the pasta could not hydrate properly. Make sure the foil is sealed firmly around all edges. Also check that the tubes are fully surrounded by sauce - any exposed pasta will stay hard and dry.

Can I add meat to the filling?

Absolutely. Replace half the ricotta (250 g) with 250 g of cooked, well-seasoned ground beef or pork. Brown it well in a pan, drain the excess fat, and cool completely before mixing into the filling. This gives you a hearty meat-and-cheese filling that pairs especially well with the roasted tomato sauce.

What does the béchamel do - can I skip it and just use more tomato sauce?

The béchamel does two important jobs: it traps steam so the pasta cooks through from above, and it provides a creamy, mild counterpoint to the bright tomato sauce. Skipping it will result in drier pasta and a less balanced dish. If you dislike béchamel, a thin layer of crème fraîche loosened with a splash of milk is a good substitute.

How do I get clean portions when serving?

Rest the dish for at least 10 minutes after baking - this is non-negotiable. Use a sharp knife to cut between the tubes rather than through them, and a wide spatula to lift portions cleanly. If the dish was made ahead and reheated, it will portion even more neatly as the sauces have had extra time to set.

Recipe Reviews

No reviews yetBe the first to review this recipe!

The weekly recipe note

Enjoyed this recipe? Get the next one first.

One new recipe each week from Christophe: global flavor, French technique, and practical home-cook timing.

By signing up, you agree to receive emails from Mr. Saucy.

More Recipes You May Like

Swipe to explore

Classic Potato Gnocchi with Brown Butter and Sage

This classic potato gnocchi recipe gives you soft, pillowy dumplings every time. The secret is baking the potatoes to keep them dry, so you use less flour. Ready in about 90 minutes, this comforting dish serves 4 and pairs perfectly with a rich, nutty brown butter sauce.

Recipe image: Classic Potato Gnocchi with Brown Butter and Sage
⏱️ 1 hr 30 min👥 4🇮🇹

Seafood Risotto ai Frutti di Mare, the Italian Way

This classic Italian seafood risotto is built on a rich homemade broth from toasted prawn shells, cooked ladle by ladle with Carnaroli rice, and finished with a cold-butter mantecatura for silky creaminess without cream or cheese. Every seafood goes in at the perfect moment. Ready in about 75 minutes. Serves 4.

Recipe image: Seafood Risotto ai Frutti di Mare, the Italian Way
⏱️ 1 hr 15 min👥 4🇮🇹

Classic Italian Tiramisu with Almond and Espresso

This classic Italian tiramisu is a light and creamy dessert made with rich mascarpone, bold espresso, and a hint of sweet almond. By gently warming the egg yolks and folding in fluffy egg whites, you get a silky, safe, and travel-ready treat. It takes about 30 minutes of active work and 6 hours to chill, serving 8 to 12 people.

Recipe image: Classic Italian Tiramisu with Almond and Espresso
⏱️ 6 hrs 30 min👥 8-12🇮🇹