Keto Fudge
Published December 14, 2025 • Updated March 13, 2026
This post may contain affiliate links. See my disclosure policy.
The trick to getting fudge right without sugar is the condensed milk. Most recipes skip it entirely and use cream cheese or coconut oil instead. The texture is never the same. Real fudge has that dense, smooth bite that clings to your teeth slightly before melting. That comes from condensed milk, and I make a sugar-free version at home.
I simmer 2 cups of heavy cream with butter and sweetener for about 45 minutes, stirring occasionally and watching it go from thin and white to golden and syrupy. That slow reduction is what gives this fudge its structure. Without it, you get chocolate ganache. Good, but not fudge. Some recipes call themselves “no bake” and skip the stovetop entirely. You can taste the difference. The simmering time is what earns the texture.
Why This Sets Differently
Homemade fudge without sugar has a reputation for being grainy or soft. The condensed milk fixes both problems. The slow reduction dissolves the powdered sweetener completely (no grit), and the concentrated milk proteins help it firm up in the fridge without becoming chalky. I tested this with allulose, monk fruit blends, and powdered erythritol. All work, but powdered erythritol gives the smoothest set. Allulose makes a slightly softer result because it doesn’t crystallize the same way, so I give it an extra hour of chill time.
One of my readers, Courtney, discovered that swapping heavy cream for ultra-filtered whole milk produces an even firmer set. I tried it and she’s right. The higher protein content gives the condensed milk more structure. If you can find Fairlife or a similar brand, it’s worth testing.
The Chocolate Matters
I use ChocZero or Lily’s chocolate chips. Both melt cleanly and set firm. Avoid chips with maltitol (check the label). Maltitol causes digestive issues for most people and has a higher glycemic impact than other sugar alcohols. If you want a deeper chocolate flavor, swap 2 oz of the chips for unsweetened baking chocolate. Another reader, Laura Q., tried browning the butter before adding it to the condensed milk. The nuttiness pairs really well with the chocolate, and it still sets fine. I’m making that my default.
Variations I Make Often
The base recipe makes classic chocolate fudge, but I make variations constantly. I stir in 1 cup of chopped walnuts after melting the chocolate for a crunchier version. For a holiday twist, try my white chocolate fudge with pistachios and dried cranberries. If you want something completely different, my toffee uses the same butter and sweetener base but goes crunchy instead of smooth.
I usually make a double batch of the condensed milk and keep half in the fridge for the next round. It holds for about a week. During the holidays, I cycle through batches of fudge, caramels, and toffee, packaging squares in small tins for gifts. The low carb count (1.2g per piece) means even friends watching their intake can have a few without thinking twice. The condensed milk is the foundation for all of it.
How to make keto fudge with homemade condensed milk
This recipe has two stages. First, I make the condensed milk by simmering heavy cream with butter and sweetener for about 45 minutes until it reduces by half and turns thick and golden. Don’t rush this step. If the cream hasn’t reduced enough, the fudge won’t set properly.
Once the condensed milk is ready, I melt the chocolate chips into it, add vanilla and salt, pour into a lined pan, and refrigerate for at least 4 hours. The fudge firms up as it cools. After it’s set, lift it out by the parchment paper overhang and slice into 32 pieces.
The whole process takes about an hour of active time (mostly waiting for the cream to reduce) plus 4 hours of chilling. Plan to make this the night before you need it. I start the condensed milk after dinner and pour the fudge before bed. By morning, it’s ready to cut.
Explore 683+ keto recipe videos with step-by-step instructions, tips, and tricks to make keto easy.
Ingredients
4 tablespoons unsalted butter, divided
1/2 cup powdered sugar-free sweetener
2 cups heavy whipping cream or ultra-filtered whole milk
12 oz sugar-free chocolate chips
1/4 teaspoon salt
1 teaspoon vanilla extract
Step by Step Instructions
Step by Step Instructions
Make condensed milk
Add butter, sweetener and milk or cream to a heavy bottom saucepan. Bring to a boil over medium heat while stirring occasionally. Reduce heat to low and simmer for 25-30 minutes or until the mixture has thickened and can coat the back of a spoon. Stir occasionally, scraping continuously to prevent a milky buildup from forming around the sides.
- 3 tablespoons unsalted butter
- 1/2 cup powdered allulose
- 2 cups heavy whipping cream or ultra-filtered whole milk
Prepare the pan
Line an 8×8 or 9×5 pan with parchment paper or foil, lightly grease it with butter, and set it aside.
Melt chocolate
To the sweetened condensed milk, add the chocolate chips, butter, and salt. Heat over low, stirring constantly so the chocolate doesn’t seize. Keep going until the chocolate chips are completely melted and everything is smooth.
- 12 oz sugar-free chocolate chips
- 1 tablespoons unsalted butter
- 1/4 teaspoon salt
Pour fudge into pan
Once everything is fully melted, remove the pan from the heat, stir in the vanilla extract, then immediately pour the mixture into the prepared pan and smooth the top with a spatula.
- 1 teaspoon vanilla extract
Nutrition disclaimer
The nutrition information provided is an estimate and is for informational purposes only. I am a Doctor of Pharmacy (Pharm.D.); however, this content is not intended to be a substitute for professional medical advice, diagnosis, or treatment. Always consult your physician or other qualified health provider before making any lifestyle changes or beginning a new nutrition program.
Your Macros. Your Recipes. Calculated in 60 Seconds.
Get personalized keto macros and instantly see which recipes fit your targets. No more guessing what to eat.
Get My Macros + Recipes →Frequently Asked Questions
Can I use a different sweetener?
I've tested three head-to-head: powdered allulose, powdered monk fruit blends, and powdered erythritol. All work, but they set differently. Powdered erythritol gives the smoothest, firmest result. Allulose makes a slightly softer fudge because it doesn't crystallize the same way, so I give it an extra hour of chill time. Powdered is important regardless of which you choose. Granulated sweetener won't dissolve fully during the condensed milk stage and you'll end up with grit.
Why didn't my fudge set?
I've had this happen, and it's almost always the condensed milk. If it didn't simmer long enough (a full 45 minutes), it stays too thin to give the fudge structure. It needs to be thick, golden, and coat the back of a spoon. If it's still white and runny, keep going. The second issue is chill time. I give mine at least 4 hours, but overnight is better. If it's still soft after 6 hours, the condensed milk wasn't thick enough. You can re-melt the entire batch, simmer for 10 more minutes to reduce further, and pour it again.
What chocolate chips work best?
ChocZero and Lily's Dark Chocolate Chips are what I use most. Both melt smoothly and set firm. Avoid any brand that lists maltitol as a sweetener. Maltitol has a higher glycemic impact and causes digestive discomfort for most people. I always check the back of the bag, not just the front label. If you want a more intense flavor, I replace 2 oz of the chips with unsweetened baking chocolate.
Can I make this dairy free?
I've tested this with full-fat coconut cream in place of the heavy cream. It works. The flavor shifts slightly toward coconut, but the texture holds and it sets and slices the same way. Replace the butter with coconut oil. Most sugar-free chocolate chip brands are already dairy free. It's a slightly different fudge, but my family didn't complain.
How many net carbs per piece?
1.2g net carbs per piece when I cut into 32 squares from an 8x8 pan. The carbs come mostly from the heavy cream and chocolate chips. If you use a different chocolate brand, check the label since carb counts vary. The entire batch is about 38g net carbs total. For more low carb treats in this range, I'd point you to my chocolate mousse or Cadbury eggs.
Can I add peanut butter?
I swirl in 1/4 cup of natural peanut butter (no sugar added) after melting the chocolate. Don't mix it fully. Leave visible streaks for a marbled effect. This adds about 0.5g net carbs per piece. You can also spread peanut butter on the bottom of the pan before pouring the fudge on top for distinct layers. I've tried almond butter too, and it works as a substitute.
Does this need to stay refrigerated or can it sit at room temperature?
I keep mine in the fridge. At room temperature, the fudge softens within a couple of hours and starts losing its clean edges. It won't spoil quickly since butter and chocolate are stable, but the texture goes from firm and sliceable to soft and sticky. For parties, I pull the tray out right before serving. It holds for about an hour on the counter before things get messy. If you're gifting, always include a note to keep it refrigerated.
Can I make a peppermint version for the holidays?
I add 1/2 teaspoon of peppermint extract when I stir in the vanilla. That's enough for a clear mint flavor without overpowering the chocolate. I've also crushed a few peppermint candies on top before the fudge sets for a candy cane look. My holiday tins usually include a mix of plain and peppermint pieces.

The homemade condensed milk step took me straight back to my mom's kitchen and I wasn't prepared for that, not even a little.
Never made fudge from scratch before. Wasn't sure about the condensed milk step, but it came together fast. Once it set, texture was perfect. Doubling the batch next time.
My grandmother made a tin of fudge every December, kept the recipe on an index card in a box I still have but can't use anymore. I hadn't thought about it in years, and then I made this last weekend and the texture just brought it back. The way it cuts cleanly, the way it sets firm but still gives when you bite in. I used Lily's chips and let it sit overnight in the fridge, came out smooth enough that I sat with a piece for a while just thinking. Four stars because I pulled back on the sweetener slightly and think it works better that way, but that's just me. Glad this recipe exists.
Texture holds memory like that. Lily's chips run sweeter than a lot of brands anyway, so I get the pull back.
Used ultra-filtered whole milk instead of heavy cream (ran out) and it sets firmer, which makes cutting clean squares way easier. Main tip: don't put it in the fridge warm. Did that the first time and ended up with a weird grainy layer on top. Cool it on the counter first, then refrigerate. Lily's chips plus that one step and honestly this is unbeatable.
Cleaner cuts are worth the swap. Ultra-filtered sets up firmer because it's higher protein than cream. Grainy top happens every time it goes in warm. Counter first, always.
Fourth batch and I finally stopped rushing the refrigerator step. Letting it set overnight instead of a few hours makes a real difference in how clean it slices. Worth the patience.
My daughter who avoids anything I call keto found this in the fridge and ate three pieces before I said a word. That told me everything. Only 4 stars because mine set softer than expected even after a full night in the fridge.
Tried browning the butter before adding it to the condensed milk. There's a subtle nuttiness that plays nicely off the chocolate - not overpowering at all. Fudge still sets and cuts fine. Worth it if you like browned butter.
Browned butter in fudge is something I need to try. That nuttiness would pair really well with the chocolate. Good to know it still sets.
Never made fudge before, keto or not, and the condensed milk step had me hovering over the pot convinced I was about to burn it. Didn't burn it, set it overnight, and now I have 32 pieces of something a lot smoother than I expected on a first try. Question because I'm already thinking about round two: can you sub full-fat coconut milk for the heavy cream, or does the dairy fat affect how it sets up?
Coconut cream works, coconut milk won't reduce thick enough. Use the canned full-fat version. Slight coconut taste but sets fine.
The texture is perfect. No one knew it was sugar-free.
Love that! I make a double batch every couple weeks now because my family goes through it so fast.
Brought this to a holiday party and nobody knew it was sugar free until I told them. 1.2g carbs per piece is unreal for how rich the chocolate is.
That's what I always hear - the texture is what sells it. 1.2g for something that rich is tough to beat.