Desserts
This chocolate cannoli recipe delivers the perfect balance of crispy shells and ultra-rich ricotta filling that feels like a bite of Italian tradition. The secret to achieving that signature crunch lies in the precise baking technique for the shells, while the filling requires patience to achieve that velvety, melt-in-your-mouth texture.
I've perfected this recipe over years of testing—each component must be executed carefully to avoid soggy shells or grainy filling.
The process begins with the shells, which need to be baked until golden and crisp, then cooled completely before stuffing. For the filling, ricotta must be strained and sweetened just right, blending seamlessly with dark chocolate and a touch of orange zest for depth.
This isn't a recipe for beginners, but the results are worth the effort—each bite combines satisfying crunch with decadent creaminess.
What sets this recipe apart is the attention to detail in every step, from baking the shells to assembling them with precision. The chocolate filling is rich enough to satisfy chocolate lovers while maintaining the lightness that makes cannoli special.
Once chilled, these cannoli develop an even better texture, with shells staying crisp and filling staying perfectly smooth.
Serve these with a dusting of cocoa powder or chocolate shavings for an elegant finish. The key to success is patience—rushing any step will compromise the final result. Let's create cannoli that taste like they came straight from a Sicilian pastry shop.
Ingredients for chocolate cannoli
Twelve essential ingredients for authentic Italian-style cannoli with perfect crisp shells and velvety filling.
| Ingredient | Amount | Notes |
|---|---|---|
| All-Purpose Flour 🌾 | 3 cups | Sifted for light texture |
| Unsalted Butter 🧈 | ½ cup | Cold, cubed, for crisp shells |
| Granulated Sugar 🍚 | ½ cup | Fine granulation preferred |
| Large Eggs 🥚 | 3 whole | Room temperature for blending |
| Vanilla Extract 🌸 | 1 tbsp | Pure, high-quality preferred |
| Whole Milk 🥛 | ¼ cup | Cold, for dough consistency |
| Part-Skim Ricotta Cheese 🧀 | 2 lbs | Fresh, full-fat preferred |
| Granulated Sugar 🍚 | 1 ½ cups | Fine granulation for smooth filling |
| Dark Chocolate Chips 🍫 | 1 cup | 70% cocoa or higher |
| Orange Zest 🍊 | 1 tbsp | Fresh, finely grated |
| Vanilla Bean Paste 🌸 | 1 tbsp | Or 1 tsp pure extract |
| Large Egg Yolks 🥚 | 2 whole | Pasture-raised for richness |
| Cocoa Powder 🍫 | ¼ cup | Dutch-processed preferred |
| Powdered Sugar 🍚 | ½ cup | For dusting shells |
| Semisweet Chocolate Bars 🍫 | 4 oz | For shavings, high-quality |
The ricotta is non-negotiable—whole-milk, full-fat ricotta from a trusted brand like Galbani or Whole Foods Market ensures that signature creaminess. Look for ricotta with minimal additives; the fresher, the better. For the shells, Baking & Cheese brand flour (or equivalent high-protein) creates that signature crispness. Keep your butter cold when cutting it into the flour—this prevents the dough from becoming too soft. The dark chocolate should be at least 70% cocoa for depth; Ghirardelli or Lindt brands deliver consistent quality. Orange zest adds brightness, so use organic oranges when possible for richer flavor.
No ricotta? Cottage cheese blended until ultra-smooth works in a pinch, though texture will differ slightly. Substitute dark chocolate with chopped chocolate bars melted and cooled—just avoid pre-shredded, which contains anti-caking agents. Running short on vanilla bean paste? Pure vanilla extract at double the amount suffices, though the flavor won't be identical. For the shells, if you can't find Dutch-processed cocoa powder, natural cocoa powder with an extra pinch of baking soda mimics its neutral taste. The egg yolks can be replaced with 2 tbsp aquafaba for a vegan option, though texture may vary. Always strain your ricotta through a fine-mesh sieve to remove excess moisture—this is critical for a smooth filling.
Ricotta filling keeps for 3 days in the fridge, though flavor peaks within 24 hours. Store in an airtight container with plastic wrap pressed directly on the surface to prevent a skin from forming. Shells can be baked up to 2 days ahead and stored in a sealed container at room temperature. For best results, assemble cannoli 4 hours before serving to allow the filling to set properly. Freeze assembled cannoli (unshaved) for up to 1 month—thaw overnight in the fridge before serving. The chocolate shavings should be added fresh; pre-shaved chocolate loses its crispness and can make shells soggy.
Why You'll Love This Recipe
- No Puff Pastry Needed: I’ll be real—this isn’t your grandma’s cannoli. You’re skipping the fuss of rolling and frying shells by making crispy, golden tubes with just flour, butter, and eggs. The secret’s in the baking powder for that light, airy crunch, and honestly? It’s foolproof.
- Rich Without the Fuss: That velvety chocolate filling? Just melted butter, sugar, and a splash of vanilla—no tempering, no fancy equipment. The eggs in the shells add a subtle richness, and the sugar caramelizes just enough to give it a buttery depth. It’s decadent, but the ingredients won’t break the bank.
- Weeknight Dessert Hero: Between us, I’ve served these at book club meetings, as a midnight snack for my teen, and even as a “breakfast dessert” (yes, really). They’re sturdy enough to make ahead, so you can prep the shells a day in advance and fill them when the craving hits. No last-minute stress—just grab and enjoy.
Step-by-step instructions for chocolate cannoli recipe
Perfect crispy shells meet ultra-rich filling—here's how to assemble them like a pro.
Prepare the Cannoli Shell Dough
In a large mixing bowl, combine the 3 cups all-purpose flour, 0.5 cup granulated sugar, and a pinch of salt. Cut in the 0.5 cup cold unsalted butter using a pastry cutter or your fingers until the mixture resembles coarse crumbs with pea-sized butter pieces remaining. This texture is crucial for achieving crisp shells.
Make a well in the center and add the 3 whole large eggs, one at a time, mixing just until incorporated after each addition. Add the 1 tablespoon vanilla extract and 0.25 cup cold whole milk, mixing gently with a wooden spoon until a shaggy dough forms. Avoid overmixing—the dough should be slightly sticky but manageable. Wrap the dough in plastic wrap and refrigerate for at least 30 minutes before rolling.
Roll and Cut the Shells
Preheat your oven to 375°F and line two baking sheets with parchment paper. On a lightly floured surface, roll the chilled dough to 1/16-inch thickness using a pasta machine or rolling pin. Cut the dough into 4-inch circles using a round cutter or glass, rerolling scraps as needed. Place the circles on the prepared baking sheets, spacing them 1 inch apart. Prick each circle with a fork to prevent puffing.
Bake for 10-12 minutes until the edges are light golden brown and the centers are just set. Immediately after removing from the oven, use a 1-inch round cutter to cut out the inner portion of each shell, leaving a 1/4-inch thick ring. Let the shells cool completely on a wire rack before stuffing—this prevents them from becoming soggy.
Make the Chocolate Ricotta Filling
In a large bowl, combine the 2 lbs part-skim ricotta cheese, 1.5 cups granulated sugar, 1 tablespoon orange zest, and 1 tablespoon vanilla bean paste. Mix until the sugar is fully dissolved and the mixture is smooth. In a separate small bowl, whisk together the 2 whole large egg yolks and 0.25 cup cocoa powder until smooth, then gently fold this mixture into the ricotta. The filling should be thick but pipeable—if too stiff, add 1 teaspoon milk at a time until it reaches the right consistency.
Fold in the 1 cup dark chocolate chips using a rubber spatula, ensuring even distribution throughout the filling. Cover the bowl and refrigerate for at least 1 hour to allow flavors to meld and the filling to thicken slightly. This chilling step is essential for creating a firm yet creamy texture that holds its shape inside the shells.
Assemble and Serve the Cannoli
Use a piping bag fitted with a large star tip to fill each cooled cannoli shell with the chocolate ricotta mixture. Pipe the filling until it reaches the top edge of the shell, then gently press down with your finger to compact it slightly. Dust the top of each cannoli with powdered sugar using a fine-mesh sieve for a professional finish.
For the final touch, use a vegetable peeler to shave the 4 oz semisweet chocolate bars into thin curls and sprinkle them over the top of each cannoli. Serve immediately or store in an airtight container in the refrigerator for up to 3 days. The contrast of crisp shells and velvety filling makes every bite worth the effort—just be sure to assemble them fresh for the best texture.
Pro Tips For Making Chocolate Cannoli
- Chill the Dough Twice: After mixing your cannoli shells, refrigerate the dough for 30 minutes before rolling it out—this prevents cracking. Then, freeze the rolled sheets for 15 minutes on parchment before cutting; the extra cold makes the shapes hold their form when fried, not flop like sad noodles.
- Whip Eggs to Room Temp: Cold eggs from the fridge won’t emulsify properly with your butter-sugar mix, leading to dense, greasy shells. Pop them in a bowl of warm water for 10 minutes first—your shells will fry up crisp and light, not soggy.
- Skip the Overcrowding: Fry cannoli shells in batches of 3–4, not the whole tray at once. Overcrowding drops the oil temp, and you’ll end up with greasy, unevenly cooked shells. A thermometer reading of 350°F is your friend—keep it steady.
- Toast the Sugar First: Lightly toast your granulated sugar in a dry pan for 2–3 minutes before mixing it into the butter. It caramelizes just enough to add depth to the shell flavor—no one will believe you didn’t use brown sugar. (Yes, even if you’re impatient like me.)
Wine and beer pairings for this dish
Sweet Wine Pairings
Chocolate cannoli's rich, velvety filling pairs beautifully with Italian dessert wines that complement its sweetness without overpowering it. A Moscato d'Asti from Piedmont is my go-to—its light effervescence and floral notes cleanse your palate between bites, while its 10-12% alcohol keeps the dessert from feeling too heavy.
For a more robust option, try a Recioto della Valpolicella from Veneto, a sweet red wine with dried cherry and chocolate undertones that mirror the cannoli's filling. Serve both slightly chilled (50-55°F) to enhance their refreshing qualities. 🍷
Creamy Beer Options
If you prefer beer, opt for Belgian-style cream ales or doppelbocks that balance the cannoli's richness with malty sweetness. A Westmalle Tripel offers a crisp, slightly spicy finish that contrasts the chocolate, while a Weihenstephaner Hefeweissbier (with its banana and clove notes) adds a fruity dimension.
For a bolder pairing, try a Belgian dark ale like Rodenbach—its caramel and raisin flavors harmonize perfectly with the chocolate. Serve these beers at 45-50°F to preserve their delicate aromas. 🍺
Espresso & Liqueur Pairings
For a non-alcoholic option, a strong espresso cuts through the richness of the cannoli, while a splash of Amaretto or Frangelico adds a nutty, almond-kissed finish. I like to serve a double shot of espresso alongside cannoli, followed by a small glass of Amaretto for sipping.
The liqueur's sweetness enhances the chocolate without competing, creating a layered flavor experience. For a coffee lover's twist, try a cold brew concentrate drizzled over the cannoli—its smooth acidity balances the richness beautifully. ☕
Avoid Overpowering Flavors
Steer clear of heavy, oaky wines like Chardonnay or Cabernet Sauvignon, as their bold tannins can clash with the cannoli's delicate texture. Avoid stout beers like Guinness, which may make the dessert taste overly bitter.
Even port wine, while sweet, can be too intense—its high alcohol content can leave your palate feeling fatigued. Instead, focus on lighter, fruit-forward options that let the cannoli shine. The goal is harmony, not competition. 💫
Seasonal Wine Swaps
In warmer months, switch to Sparkling Moscato or a Riesling Kabinett for a refreshing contrast to the cannoli's richness. During colder seasons, a Vin Santo from Tuscany—with its honeyed notes and nutty finish—pairs wonderfully with the chocolate.
For a festive touch, a Spumante (Italian sparkling wine) adds a celebratory fizz that elevates the dessert experience. Always let the wine breathe for 5-10 minutes before serving to release its aromas fully. ❄️
Nutrition facts
Frequently asked questions
Why do my cannoli shells turn out soggy?
Soggy shells usually happen when you stuff them too soon after baking or don't let them cool completely. Always let shells cool for at least 30 minutes on a wire rack before filling. Also, make sure your filling isn't too wet—strain the ricotta thoroughly and adjust consistency with extra cocoa powder if needed.
Can I make cannoli shells ahead of time?
Yes! Baked shells stay crisp for up to 2 days at room temperature in an airtight container. For longer storage, freeze them for up to 1 month. Just be sure to bring them to room temperature before filling to prevent condensation from making shells soggy.
How do I fix lumpy chocolate ricotta filling?
Lumpy filling happens when chocolate chips don't melt completely or ricotta isn't strained enough. First, strain your ricotta through a fine-mesh sieve. For the filling, gently melt chocolate chips with 1 teaspoon milk in a double boiler, then cool slightly before folding into the ricotta mixture. Use a rubber spatula to blend thoroughly.
What's the best way to store assembled cannoli?
Keep assembled cannoli refrigerated in an airtight container for up to 3 days. Avoid stacking them—place parchment paper between layers to maintain crispness. For best texture, serve at room temperature. If storing longer, freeze unshaved cannoli for up to 1 month, then thaw overnight in the fridge.
Can I use store-bought cannoli shells?
Store-bought shells save time while still delivering great results. Just ensure they're completely cooled and dry before filling. For extra crispness, bake them at 350°F for 5 minutes before stuffing. The filling preparation remains the same—this shortcut works perfectly for special occasions.
