Valentine’s Day flower markups can be as high as 250% at local florists. But while florists are marking flowers up during Valentine’s Day, supermarkets and big box stores mark them down.

How much are a dozen roses? A dozen roses cost $15 or less at ALDI, Costco, Whole Foods, and Trader Joe’s.

Here are some of the best Valentine’s flower deals we saw in 2021. You could buy these locally, or get them delivered nationwide.

Also check out these other Valentine’s Day articles to get into the mood!

Valentine’s Puns for Kids
Dollar Store DIYs for Valentine’s Day
Valentine’s Day Crafts for Kids


ALDI sells cheap Valentine’s Day flowers — a dozen for $9.99.

Leave it to ALDI to come in with one of the best Valentine’s Day flower deals! At $9.99 per dozen, you’ll only pay $0.83 per stem.

See all ALDI deals.


Whole Foods sells two dozen Valentine’s Day roses for $19.99.

In 2021, Amazon Prime members saved $10 on the retail price of $29.99 for two dozen roses. This brought the price point down to compete with ALDI at only $0.83 per rose.

See all Whole Foods deals.


Sam’s Club stores sell Valentine’s Day flowers — 18 roses for only $15.98.

In 2021, Sam’s Club stores offered 18-count bouquets for $15.98, which came out to $0.89 per rose, and one of the best deals of the year. This deal wasn’t available online.

See all Sam’s Club deals.


A dozen Valentine’s Day roses at Trader Joe’s are $12.99.

Trader Joe’s is one store that doesn’t discount roses for Valentine’s Day. In fact, every year they inflate their regular $6.99 price between Feb 10-14 to $12.99, or $1.08 per rose.

(Note for next year: Grab a dozen for $6.99 by Feb. 9 or skip the roses at TJ’s. But don’t think we’re hating on Trader Joe’s. . .)


But Trader Joe’s double dozen tulips for $10.99 are worth your time.

Hands down, the best deals on tulips you’ll see all year come from Trader Joe’s every February, while supplies last. Get 24 stems for only $10.99. That’s an incredible deal.

Who wants roses when tulips are this cheap? I’m team tulips, all the way. Use that money you saved not buying roses and pick up some truffles please. XOXO

See all Trader Joe’s deals.



Walmart’s flower prices come out to $4.87 for the 3-Rose mini-bouquets.

How much are flowers at Walmart? In 2021, Walmart’s three-rose (mini) bouquet came in at a price point under $5 — your cheapest entry into the rose market, but not the cheapest cost per stem ($1.62 each). Walmart’s price on dozens in 2021 was $15.99.

See all Walmart deals.


Potted roses and calla lilies are $9.97 at Walmart during Valentine’s Day.


Act early to get the Costco Valentine’s flower deal — 50 roses for as low as $40.

In 2021, you could order 50-stem roses for your Valentine from for $39.99. Costco offered 15 colors and color combinations at $0.80 per stem. The closest delivery date to Valentine’s Day was early — Feb. 5 — and at that price, they sold out quickly. So, this option works best if you can move on it right when it shows up and you don’t mind sending your flowers a week early. also has had Valentine’s Day 50-Stem Roses for $54.99. You can pick the arrival date between Feb. 9-12, which is closer to Valentine’s Day than the cheaper bundle. In 2021, the last day to order for Feb. 12 delivery was Feb. 9.

See all Costco deals.


Target’s Valentine’s Day flower deals suck — $19.99 for one dozen roses.

In-store roses hit Target shelves around Feb. 7 in 2021. Potted orchids were $29.99, and Valentine’s succulents started at $7.99, and they arrived in stores earlier.

Pay with your RedCard and save an extra 5% on your Valentine’s Day flowers! RedCard connects to your checking account, so it’s like using cash, not a credit card.

See all Target deals.



But, I’m ready to pay full price for these smooching succulents.

Fairly obsessed with the new potted Valentine’s succulents at Target. Good deal? Not really. Do I care? Nope. in 2021, these were available in store only.


CVS and Walgreens take the crown for worst Valentine’s roses deal — $12.99 for half dozen.

CVS typically doesn’t carry roses until about two days before Valentine’s day. And they’re a terrible deal, even if you have ExtraBucks from couponing at CVS.

Ditto Walgreens. Although you can pay with Register Rewards, this is a crappy deal at $2.17 per stem. Learn how to get Register Rewards by couponing at Walgreens.


UP NEXT: The Best Valentine’s Day Deals

Where to Buy Valentine's Day Flowers for Cheap