Keto Fudge
Published December 14, 2025 • Updated June 9, 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
Explore hundreds of 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
Refrigerate
Let the fudge cool completely and set for several hours until firm by placing it in the refrigerator, then slice and enjoy.
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.

do I need a candy thermometer for the condensed milk part, or can I just go by how it looks??
My daughter can't do dairy so I'm trying to swap things out. Would full-fat coconut cream work for the heavy whipping cream, or would it mess up the set?
Denise, I've tested this swap. Full-fat coconut cream works, sets fine and slices clean. There's a slight coconut note to the flavor but nothing overwhelming. Swap the butter for coconut oil too, or you're still getting dairy in there.
Keep it refrigerated until about 20 minutes before serving, especially in summer. Brought a batch to a cookout last weekend and it held up fine on a 90-degree afternoon. One thing: the condensed milk step takes longer than the recipe implies, so don't rush it. Four stars for that reason, but the texture is noticeably different from versions that skip it, worth doing properly.
Cutting into 64 pieces gets each one down to about 0.6g net carbs, so you can grab one without overthinking it. The condensed milk takes a while, but fudge keeps well for 10+ days in the fridge, one batch goes far.
I always do 32 but 0.6g per piece means you can grab two without thinking. The condensed milk's why it keeps so well.
Two at a time gets to 1.2g anyway, so easier for sharing. And yeah, the shelf life on this always surprised me compared to regular fudge.
Leave it overnight before you cut in. My early batches were soft in the middle because I couldn't wait, and I kept thinking I'd messed up the condensed milk. Batch seven or eight now and that extra time makes it set clean.
Overnight is my rule too. I had that same soft-middle panic early on, convinced I'd cut the condensed milk simmer short. But the fudge needs those cold hours to pull together, and that's when you get the clean edge. Took me until batch seven to stop second-guessing it. Mine still looks suspiciously soft coming out of the pan.
Wasn't sure the from-scratch condensed milk was worth it, but the set is actually different from anything I've made with shortcuts. No graininess, no soft spots. Worth the 20-minute cook.
That no-graininess result is everything. The slow simmer fully dissolves the sweetener. Shortcuts skip that.
Batch five. Tried it with milk instead of cream. Sets lighter.
Five batches and already testing variations. Makes sense it sets lighter, less fat to firm it up. I use ultra-filtered when I try the milk version, regular milk thins it out too much.
My grandma made this every December. I haven't let myself have it in three years since going keto. Made this on a whim last Sunday and when I cut into it after it set, the texture just stopped me cold. Smooth and dense in exactly the way hers was, not that waxy thing you get with most sugar-free chocolate. I sat at the counter eating a piece and got a little emotional about it (the good kind). The homemade condensed milk step seemed fussy at first but you can taste exactly why it's there, it's what separates this from anything I've made before with just melted chips and cream. I used Lily's dark chocolate and the slight bitterness cuts through the richness in a way that keeps it from being too sweet. It gives something back I genuinely thought I'd just had to make peace with losing.
Three years without it and then that moment at the counter. Lily's dark bitterness is what makes this one actually work.
Fudge was the one thing I thought I'd genuinely given up for good going keto. This one, with the homemade condensed milk base, has that exact silky texture from my mom's recipe. I almost cried eating it.
I tested the condensed milk step the most because of exactly this, Dana. Fudge has to have that texture or it's just chocolate.
My mom made fudge every December when I was a kid, the real kind with sweetened condensed milk poured straight from the can. I've been keto for two years and figured that was just gone. Made this last week and the texture is identical (I checked twice, convinced I'd done something wrong). The Lily's chips actually give it a slight edge over what I remembered, which I wasn't expecting. Didn't think making fudge on a Tuesday in May would bring back a memory like that, but it did.
That Tuesday in May line got me. The condensed milk is what makes the texture land right, there's no shortcut around it. And the Lily's thing surprised me too when I was testing it, something about the slight bitterness in the dark chips rounds it out better than I expected.
Tip that made a difference: warm your knife under hot water and wipe it dry before each cut. First batch I just went at it and the pieces splintered along the edges. Second batch, clean slices every time. The condensed milk step is a bit fussy but it's what gives the texture that smoothness, so don't skip it.
That knife trick works. Hot water, dry wipe, every time. The condensed milk is the whole recipe, rush it and you get fudge soup.
Every keto fudge I've tried has this chalky finish that just gives it away. I was pretty sure I'd mess up the condensed milk step but it set up so smooth, and SO good, nothing like the others. Completely converted.
That chalkiness. Almost always the chips. Maltitol in most brands does it.
Made a batch of this over the weekend and my teenage son (who avoids anything I label 'keto') kept coming back to the pan. When I finally told him what was in it, he picked up my bag of Lily's chips and read the label like he was doing actual research. I've tried other keto fudge before and there's always that slightly gritty texture you can't get past, but this one is smooth all the way through. Something about making the condensed milk from scratch first instead of just melting chips together. Already planning another batch.
Once he's past the label it's just candy. The condensed milk step is everything for that texture. Melted chips alone don't set the same way.
First time making fudge of any kind and I went straight for the from-scratch condensed milk, which felt like a bold choice for a beginner. I kept watching it the whole time, convinced I was going to mess something up, but it came together smooth and the final texture is genuinely impressive for 1.2g net carbs. Four stars only because I want to keep experimenting before I commit to five. Quick question though: do you think this would hold up with white chocolate chips instead of the dark? Not sure if the ratios would behave the same way.
White chocolate works, same ratios. It sets a little softer than dark so give it extra time in the fridge before you cut it. ChocZero makes a sugar-free white chocolate chip that melts cleanly.
First batch stayed soft no matter what. Pulled the condensed milk too early apparently. Full 20-minute reduction fixed it.
Yep, needs to get thick and golden before you pull it. The visual cue beats the timer. Should coat the back of a spoon and look almost caramel.