What actually grows here without a fight? Pick flowers built to handle a hard freeze one week and a dry, hailing afternoon the next, because that’s what a Colorado year actually throws at a garden. Cold-hardy, drought-tolerant, tough-leaved plants — think blanket flower, Russian sage, coneflower — shrug off swings that wreck softer garden-center favorites. Before you buy anything, check your own county’s winter low against the plant tag, since a flower that sails through one Colorado town can die outright forty miles away and a thousand feet up.
What thrives in Colorado

Cold and heat, not just one or the other
A Colorado flower has to handle both ends of the thermometer in the same year. The USDA’s 2023 Plant Hardiness Zone Map puts the state across zones 3b through 7b, a spread wide enough that a flower thriving in a Grand Junction backyard can die outright in a mountain town two thousand feet higher. Denver’s coldest month averages a nightly low of 18.4°F, per NOAA’s 1991-2020 normals, and that single figure is what rules out anything rated only for zones 8 or warmer unless it’s grown as an annual here.
Heat is the other filter. Denver logs an average of 39.6 days a year at or above 90°F, according to NOAA’s normals, and that heat load pulls moisture out of soil fast when it’s paired with the state’s thin, dry air. Drought tolerance matters more here than in most of the country, because a flower that needs steady moisture will fight you all summer no matter how often you water it.
Dry air changes the math
Altitude adds a filter flatter states don’t have to think about. Thinner air lets more ultraviolet light through, and Colorado’s frequent spring hailstorms can shred broad-leaved flowers in minutes. Flowers with narrow, leathery, or silvery foliage, like blanket flower and Russian sage, shrug off hail and intense sun that would flatten a dahlia or a broad hosta leaf overnight.
The families that carry these traits best are the daisy family (Asteraceae) and the mint family (Lamiaceae). Blanket flower, coneflower, and Shasta daisy are Asteraceae, with tough fibrous roots that handle cold ground and dry heat equally well. Russian sage, catmint, and salvia are Lamiaceae, sharing the same drought tolerance plus a bonus: their foliage tends to repel deer and rabbits, a real issue along Colorado’s foothills and open subdivisions.
Humidity is one fight Colorado gardeners rarely have. Gardeners in a humid climate like Hawaii’s spend real effort managing fungal disease on flowers that never see the problem here (see Flowers That Actually Thrive in Hawaii, and the Ones That Struggle). Colorado’s dry air keeps powdery mildew and black spot rare outside of crowded, over-irrigated beds. The tradeoff is that anything bred for a wetter climate will need more water here than the tag suggests, not less, because the same dry air that keeps disease down also pulls moisture out of leaves faster.
Native plants worth the space
Why native means low-water
A native flower has already solved Colorado’s climate problem before you plant it. Species native to the wider Rocky Mountain and shortgrass prairie region evolved with the same freeze-thaw winters, the same dry summers, and the same thin, often alkaline soil that frustrates imported garden varieties. Once established, usually after their first full year in the ground, these plants need little to no supplemental water, which matters in a state where outdoor watering restrictions show up in dry years.
Most Colorado natives also prefer lean, fast-draining soil over rich, amended beds. Working heavy compost into a bed meant for blanket flower or penstemon can produce lush foliage and fewer blooms, or root rot after a wet spring. A native bed does better with mineral soil and a light gravel mulch than with the treatment you’d give a vegetable garden.
Standout regional natives
Blanket flower (Gaillardia aristata) is one of the most reliable, blooming in red-and-gold rings from early summer into fall on plants that self-seed readily. Blue flax (Linum lewisii) throws up thin stems topped with sky-blue flowers that open each morning and drop by afternoon, repeating for weeks. Rocky Mountain penstemon (Penstemon strictus) sends up spikes of violet-blue tubular flowers that hummingbirds and native bees visit constantly. Prairie coneflower (Ratibida columnifera) has a distinctive drooping yellow petal skirt around a tall brown cone, and chocolate flower (Berlandiera lyrata) earns its name from a genuine cocoa scent released on warm mornings.
Showy milkweed (Asclepias speciosa) deserves space in any native bed for one reason beyond its pale pink flower clusters: it’s a host plant for monarch butterflies, whose caterpillars eat nothing else. Skipping milkweed because it looks coarse next to a cultivated perennial means skipping the one plant a monarch actually needs to reproduce, not just visit. Natives also tend to bloom on a schedule that matches the insects depending on them, giving bees and butterflies a continuous food source from May through September rather than one big burst followed by weeks of bare foliage.
Perennials that come back

A perennial’s plant tag lists a hardiness range, and the number that matters is the coldest end of it, measured against your own zone rather than the state’s. Denver sits at roughly zone 5b, but Colorado runs from USDA zone 3b in the high mountains to 7b in its lowest, warmest pockets, so a plant tagged “hardy to zone 5” is a safe bet near Denver and a gamble a few thousand feet higher.
Reliable in Denver’s zone
Perennials rated to zone 5 or colder tend to survive Denver winters without protection, given the coldest month’s average nightly low of 18.4°F reported by NOAA. Peonies, yarrow, catmint, Russian sage, sedum, and most daylilies fall into this group, along with coreopsis and columbine. These are the backbone plants for a low-maintenance Colorado border, the ones you plant once and mostly just cut back each spring.
Some perennials sold at garden centers here are only reliably perennial farther south, and Colorado gardeners grow them as annuals instead, replanting every year. Snapdragons are perennial in zones 7 through 10 but almost always killed back to nothing by a Denver winter, so they’re treated as a cool-season annual instead. Certain salvias and some lavender cultivars fall into the same gap: alive some winters, dead the next, depending on snow cover and how sharp the drainage is.
| Perennial | Typical hardiness | Bloom time | Height |
|---|---|---|---|
| Peony | Zone 3-8 | Late spring | 2-3 ft |
| Russian sage | Zone 4-9 | Midsummer to fall | 3-4 ft |
| Catmint (Nepeta) | Zone 3-8 | Late spring to fall | 1-2 ft |
| Snapdragon | Zone 7-10 (grown as annual here) | Summer | 1-3 ft |
| Lavender (‘Munstead’) | Zone 5-9 | Summer | 1-2 ft |
Reading a tag correctly means finding the low number in the range, not the high one, and comparing it to your own zone rather than to Denver’s if you garden elsewhere in the state. In a milder, wetter climate such as coastal British Columbia, some of these same perennials survive winters that would kill them outright here, because the cold there is less severe even at a similar latitude (see Flowers That Actually Thrive in British Columbia, and the Ones That Struggle). Colorado’s cold is drier and often less insulated by snow, which is part of why the same hardiness number behaves differently in two states.
Putting a border together
A border planted all at one height, blooming all in one month, looks good for three weeks and empty the rest of the season. Layering and succession fix both problems, and neither takes special skill, just planning before you dig.
Layer by height
Put the tallest plants at the back of a bed viewed from one side, or in the center of a bed viewed from all sides. Russian sage and tall daylilies work as a backbone at three to four feet, penstemon and coreopsis fill the middle at one to two feet, and creeping sedum or blue flax edge the front at under a foot. Skipping the short front layer is the most common mistake in a first border, leaving bare mulch visible right up until the taller plants fill in by midsummer.
Stagger the bloom
Peonies and columbine open in late spring, catmint and penstemon carry early to midsummer, blanket flower and Russian sage run through the heat of July and August, and sedum and asters close out the season into fall. Planting only midsummer bloomers means a border that peaks once and goes quiet for two months on either side of it.
Repeat, don’t scatter
A border with one of everything looks busy rather than designed. Repeating the same three or four plants in drifts of three to five, spaced through the length of the bed, reads as intentional even in a small yard. Pick one repeating color, usually from the blues or purples that both penstemon and catmint offer, and let everything else play against it rather than compete with it.
- Leave 18 to 24 inches between most perennial crowns at planting, even though the bed looks sparse the first year
- Mulch bare soil between young plants to cut watering and keep weed pressure down while roots fill in
- Mark where spring bulbs or early perennials sit so you don’t dig into dormant crowns in June
- Plan for a plant’s mature spread, not its nursery-pot size, when spacing
The instinct to fill every gap the first spring is the one to resist. A perennial border planted at full mature spacing looks thin for one season and crowded, healthy, and full for the next five. Planting too tight to avoid that first bare look usually means digging out and dividing plants within two or three years instead.
Local help
Colorado State University Extension maintains plant lists and fact sheets suited to specific counties, since a recommendation that works near Denver can fail at 8,000 feet. Its extension service also runs a Master Gardener program with trained volunteers who answer plant questions by county, often free at a local office or plant clinic. Calling your county’s extension office before buying an unfamiliar perennial is worth the five minutes, especially outside the Denver metro area where the growing season and zone can differ sharply. For more on gardening across the state, browse our Colorado guides.
Common questions
Can I grow lavender in Colorado?
Some cultivars can, but it’s marginal rather than reliable. English lavender varieties such as ‘Munstead’ and ‘Hidcote’ handle Colorado winters better than French or Spanish lavender, and sharp drainage matters more than the variety itself: lavender planted in heavy clay or a low spot that holds snowmelt is far more likely to rot out over winter than one planted on a slope or in a raised bed.
My plant tag says hardy to zone 5, but I live in the mountains. Will it survive?
Maybe not. Colorado spans USDA zones 3b to 7b, and mountain towns often sit at 3b or 4, well outside what a zone 5 tag guarantees. Check your specific elevation and county against the USDA map rather than assuming Denver’s zone applies, and ask your local CSU extension office what actually overwinters at your elevation.
When is it safe to plant flowers outside after winter?
Near Denver, NOAA’s 1991-2020 climate normals put the last spring freeze between May 1 and May 11, so most tender annuals and warm-season transplants go in once that window has passed. Cold-hardy perennials and pansies can go in earlier, and gardeners at higher elevation or farther from Denver should expect a later window and check local frost data rather than borrowing Denver’s dates directly.
Why do my flowers wilt every afternoon even though I water them in the morning?
That’s usually heat and low humidity rather than underwatering. Denver averages 39.6 days a year at or above 90°F according to NOAA, and combined with intense high-altitude sun and dry air, afternoon wilting shows up even in well-watered beds. Plants typically recover by evening. If they haven’t recovered by the next morning, that’s the sign of an actual water deficit rather than normal afternoon stress.
Related guides
- Flowers That Actually Thrive in Wyoming, and the Ones That Struggle
- Flowers That Actually Thrive in Nebraska, and the Ones That Struggle
- Flowers That Actually Thrive in Hawaii, and the Ones That Struggle