These cozy hot drinks will warm you up all season long! Pick from easy recipes for coffee, tea, hot chocolate, and festive warm cocktails that are perfect for cold weather.

Looking for a warm steaming mug to take the chill off? There’s nothing better than cupping your hands around a warm mug of hot chocolate or a vanilla chai latte. The best hot drinks are warming without being too heavy, flavorful but not overly sweet, and easy enough to make on a regular basis.
I’ve been creating drink recipes for over a decade, and this collection has all my top hot drinks for the season, from coffee drinks to soothing herbal teas. Here’s what you’ll find in the list below:
Hot Drinks To Take The Chill Off
This vanilla chai latte is the equivalent of putting on a fuzzy sweater and curling up by a roaring fireplace. It's flavored with the spices of masala chai: cinnamon, cardamom and ginger. Add to it the frothed milk foam from a cafe latte, and you’ll feel like you’re drinking a hot drink from your local coffee shop.
Here’s my very best homemade hot chocolate recipe: it’s creamy, rich, chocolaty, with a hint of cinnamon and vanilla on the finish. All you need are a few ingredients and 5 minutes to put it together!
Also try my Spiked Hot Chocolate, Peppermint Hot Chocolate, Vegan Hot Chocolate or Healthy Hot Chocolate.
When temperatures drops, I reach for this classic spirit-forward cocktail. Bourbon, hot water, lemon, and honey create something warming and soothing: perfect for sipping slowly by the fire. I've created several variations: my Brandy Hot Toddy, Rum Hot Toddy, Bourbon Hot Toddy, and Apple Cider Hot Toddy.
If there’s any hot drink that makes the cold better, it’s hot apple cider. It makes your kitchen smell amazing and has the power to gather people, cupping their hands around the warm mugs. The aroma makes any party cozier!
Also try my Spiked Apple Cider.
Here’s a hot drink that’s ideal for sipping on a chilly evening: Hot Buttered Rum! Even just saying the name makes you warm inside. This historic drink has been around for centuries. This version is subtly sweet, cozy-spiced with cinnamon and allspice, and spirit-forward with boozy dark rum.
This French-style coffee combines equal parts strong brewed coffee and steamed milk for a smooth, satisfying drink. It's less fussy than a latte but still feels special, especially when you pair it with a croissant on weekend mornings. Also try my Cafe con Leche.
When I can't decide between coffee and dessert, I reach for a mocha. Espresso, steamed milk, and real chocolate make a hot drink that doubles as a rich treat.
This Indian spiced milk tea is a hot drink that's popular all around the world. There’s something about the mashup of creamy milk, black tea, warm cinnamon and cardamom, and a nuanced sweetness: it's like a hug in a mug.
Making a pot of mulled wine fills the whole house with the aroma of cinnamon, cloves, and citrus. Keep it simmering on the stove during cool evenings or holiday gatherings so people can help themselves throughout the evening.
This coffeehouse standard is perfect for a morning pick me up. Each sip is herbal, lightly sweet and subtly bitter from the matcha, contrasted by the rich and creamy milk. It's got a brilliant green color and smooth, calming flavor.
There's nothing quite like the combination of strong coffee, Irish whiskey, and fresh whipped cream. I've experimented with variations too: try my Amaretto Coffee, Kahlua Coffee, or Baileys Coffee.
Here's a drink to add to your homemade latte repertoire: the London Fog! This latte with Earl Gray tea is sweet and creamy, with the gentle essence of honey, vanilla and lavender blossoms.
This healthy hot drink is cozy and warming: full of spicy ginger flavor, with a hint of tangy lemon and sweet honey. It’s a good substitute for coffee, if you’re trying to avoid caffeine, and there's not alcohol either. Also try my Lavender Tea, Sage Tea, Rosemary Tea, or Thyme Tea.
The French press is one of the easiest, most inexpensive ways to brew a great cup of coffee. It’s a forgiving method that works for all sorts of coffee beans and roasts, and you don’t need lots of extra equipment.
Then there’s quite like a steaming cup of matcha, aka Japanese green tea! This Japanese beverage has spread across the world: and for good reason. It’s full of anti-oxidants and a great healthier caffeine boost.
Hot Drinks for Every Occasion
Different situations call for different drinks. For busy weekday mornings, try simple options like cafe au lait or Americano that come together quickly. Weekend brunches call for more involved drinks like chai lattes or mochas.
For hosting, large-batch hot cocktails are always a hit, like mulled wine or mulled cider simmering in a slow cooker. For quiet evenings at home, I reach for soothing options like ginger tea or a London Fog.
Storing and Reheating Hot Drinks
Most of these drinks are best enjoyed fresh. For mulled cider or wine, you can store leftovers in the refrigerator for up to 3 days and reheat gently on the stovetop.
Coffee drinks don’t reheat well: the coffee develops a bitter taste when it sits. These are best to make right before serving.
Hot Drinks to Take the Chill Off
A vanilla chai latte combines the spices of masala chai with a classic latte! This hot drink will keep you cozy all season. Or try easy Masala Chai.
- Prep Time: 10 minutes
- Cook Time: 0 minutes
- Total Time: 10 minutes
- Yield: 1 large or 2 small
- Category: Drink
- Method: Warm
- Cuisine: Latte
- Diet: Vegetarian
Ingredients
- 1 teaspoon Homemade Chai Spices
- 1 cup water
- 1 bag black tea (or 1 teaspoon loose leaf black tea in a tea strainer)
- ½ cup fresh 2% milk (or whole milk)*
- 1 teaspoon vanilla extract
- 1 tablespoon pure maple syrup (or honey, agave, or simple syrup)
Instructions
- In a small saucepan over medium high heat, whisk together chai spices, water and tea bag and bring to a boil. Once boiling, remove it from the heat and allow it to rest for 1 minute. Then strain through a fine mesh strainer** into one or two mugs (one for a large latte and two for small).
- Rinse the saucepan. Add the milk, vanilla, and maple syrup. Heat the milk to 150 degrees Fahrenheit (measure using a thermometer): this is hot with some small bubbles forming around the outside, but not simmering. The exact temperature is helpful for getting the perfect foam (if you don’t have a thermometer you can approximate).
- Use hand frother, whisk, or French press to foam the milk. (The French press is a favorite method: Add the scalding milk to the French press and pump vigorously until frothy, about 100 times for 2% milk or approximately 1 minute; use 50 times for whole milk.) Rest the foam for about 30 seconds, which allows it to set. Go to How to Froth Milk if it’s your first time frothing.
- Pour the milk and foam evenly between the mugs (or into 1 mug). Sprinkle with additional chai spices and serve.
Notes
*Fresh milk is best for getting a nice frothy foam. You may find that a container of milk that has been open for several days will no longer froth.
**You can skip straining if desired: the spices will settle to the bottom of the drink.
window.trCommon={“minRating”:6,”ajaxurl”:”https://www.acouplecooks.com/wp-admin/admin-ajax.php”,”ratingNonce”:””,”postId”:113593};
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( ‘click’, ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}
if ( ! anchor || ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
return;
}
const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}
e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: ‘smooth’ } );
}
};
document.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}
const cookModes = document.querySelectorAll(this.cookModeSelector);
if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input[type=”checkbox”]’).addEventListener(“change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(“screen”);
this.wakeLock.addEventListener(“release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};
(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
document.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}
this.deleting = true;
this.tooltipElement.classList.remove( ‘opened’ );
setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );
const currentTooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}
this.tooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
},
show() {
if ( ! this.tooltipElement ) {
return;
}
const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );
this.tooltipElement.setAttribute( ‘style’, ‘top:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );
},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.remove( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};
window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.send( this.preparePostData( data ) );
xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}
failure( xhr );
};
xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();
for ( const key in data ) {
formData.append( key, data[key] );
}
return formData;
},
};
window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;
this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( ratings.length {
event.preventDefault();
this.defaultRating = event.target.closest( ‘.checked’ ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click’, e => {
// Bailout (don’t remove the tooltip) when the clicked element is a rating star, or it’s the tooltip itself.
if ( e.target.closest( ‘.tasty-recipes-rating’ ) || e.target.classList.contains( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}
window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( rating ) {
const ratingInput = document.querySelector( ‘#respond .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( ‘input.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click’, currentEvent => {
const selectedRating = currentEvent.target.getAttribute( ‘value’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}
if ( rating {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );
// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );
if ( ! data.count ) {
return;
}
const quickLink = document.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}
const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}
if ( data.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}
const averageElement = container.querySelector( ‘.average’ );
if ( averageElement ) {
averageElement.textContent = data.average;
}
const countElement = container.querySelector( ‘.count’ );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( ‘.’ );
this.currentRatingPercentage = parts[1] ? parts[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}
const thisStar = target.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}
const commentForm = document.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}
const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.value ) {
return;
}
// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( ‘[name=author]’ ).value = data.comment.name;
commentForm.querySelector( ‘[name=email]’ ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;
// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;
this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}
const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( ‘#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( ‘flex’ ) ) {
ratingsButtons.style.direction = ‘rtl’;
}
if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=”‘ + tastyRecipesRating + ‘”]’ ).checked = true;
}
const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click’, event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};
(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});
More Cozy Drink Ideas
- 30 Fall Cocktails for the Season
- 15 Fantastic Fall Drinks (includes non-alcoholic)
- 21 Top Winter Cocktails
- 12 Winter Drinks for the Season (includes non-alcoholic)