We priced 20 of the most commonly prescribed generic medications at six pharmacies — Walmart, Costco, Amazon Pharmacy (Prime), Cost Plus Drugs, CVS, and Walgreens. Here are the results, plus a strategy for finding the cheapest price for your specific medications.
All prices are cash prices for a 30-day supply (standard quantities). Lowest price per row is bolded.
| Drug | Costco | Walmart | Amazon | Cost Plus* | CVS | Walgreens |
|---|---|---|---|---|---|---|
| Atorvastatin 20mg | $2.81 | $4.00 | $3.00 | $5.82 | $15.99 | $18.49 |
| Lisinopril 20mg | $1.85 | $4.00 | $2.50 | $6.28 | $12.99 | $14.49 |
| Metformin 1000mg | $3.22 | $4.00 | $3.00 | $6.31 | $11.99 | $13.99 |
| Amlodipine 10mg | $2.14 | $4.00 | $2.50 | $5.90 | $13.49 | $15.99 |
| Omeprazole 20mg | $3.07 | $4.00 | $2.00 | $5.60 | $16.49 | $19.99 |
| Losartan 50mg | $2.73 | $4.00 | $3.00 | $5.54 | $12.99 | $16.49 |
| Sertraline 100mg | $3.56 | $4.00 | $3.50 | $6.50 | $14.99 | $17.49 |
| Levothyroxine 50mcg | $2.89 | $4.00 | $3.50 | $5.70 | $11.49 | $13.99 |
| Montelukast 10mg | $4.12 | $4.00 | $4.50 | $6.20 | $18.99 | $22.49 |
| Gabapentin 300mg (90ct) | $5.11 | $10.00 | $4.00 | $7.80 | $24.99 | $28.99 |
| Escitalopram 10mg | $2.95 | $4.00 | $3.00 | $5.88 | $16.99 | $19.49 |
| Fluoxetine 20mg | $2.44 | $4.00 | $3.00 | $5.50 | $12.49 | $14.99 |
| Citalopram 20mg | $2.18 | $4.00 | $3.00 | $5.40 | $11.99 | $15.49 |
| Pantoprazole 40mg | $3.44 | $4.00 | $3.00 | $5.80 | $18.49 | $21.99 |
| Meloxicam 15mg | $2.56 | $4.00 | $3.00 | $5.60 | $14.99 | $17.49 |
| Trazodone 50mg | $2.78 | $4.00 | $3.50 | $5.70 | $13.49 | $15.99 |
| Hydrochlorothiazide 25mg | $1.92 | $4.00 | $2.50 | $5.30 | $10.99 | $12.99 |
| Furosemide 40mg | $2.05 | $4.00 | $3.00 | $5.40 | $11.49 | $13.99 |
| Prednisone 10mg | $2.88 | $4.00 | $2.50 | $5.50 | $9.99 | $12.49 |
| Amoxicillin 500mg | $3.22 | $4.00 | $3.00 | $5.80 | $12.49 | $14.99 |
*Cost Plus prices include $5 shipping fee, making them less competitive for single 30-day fills. Their 90-day pricing is significantly better — see below.
| Pharmacy | Wins (Cheapest) | Average Price | Best For |
|---|---|---|---|
| Costco | 13 of 20 | $2.90 | Overall cheapest, in-person fills |
| Amazon (Prime) | 5 of 20 | $3.05 | Convenience, multiple Rx (RxPass) |
| Walmart ($4) | 1 of 20 | $4.10 | Simplicity, no price-checking needed |
| Cost Plus | 0 of 20* | $5.78 | 90-day supplies, rare generics |
| CVS | 0 of 20 | $14.40 | Convenience (9,000+ locations) |
| Walgreens | 0 of 20 | $16.90 | Late-night fills |
*Cost Plus wins on many drugs when comparing 90-day mail-order supplies, where the $5 shipping fee is amortized.
No single pharmacy is cheapest for everything. Here's the optimal approach:
First choice: Costco. Walk in (no membership needed for pharmacy), get the cash price. You'll save $1-2 per fill versus Walmart, and $10-15 versus CVS. If Costco isn't convenient, Walmart's $4 list is the next best for drugs that qualify. Details in our Costco pharmacy guide and Walmart $4 list guide.
First choice: Cost Plus Drugs. When you order 90-day supplies, the $5 shipping fee becomes negligible, and Cost Plus's transparent markup often beats everyone. Amazon Pharmacy (with Prime) is a close second and offers Subscribe & Save convenience. See our Cost Plus review and Amazon Pharmacy review.
First choice: Amazon RxPass. If you take 2+ generic medications that are eligible for RxPass, the flat $5/month covers everything with free delivery. That's hard to beat mathematically.
First choice: Costco. Their low markup applies to brand names too. Then check manufacturer savings cards and patient assistance programs. See our guide to expensive prescriptions.
Use GoodRx at whatever pharmacy is closest. For one-time fills where speed matters more than optimizing price, GoodRx coupons at a nearby CVS or Walgreens will still save you 50-70% off retail. Read our discount card comparison.
If you're also interested in health supplements and how they compare to prescription alternatives, Health Britannica covers the supplement vs prescription debate with evidence-based analysis.
CVS and Walgreens consistently charge 3-8x more than Costco for the same generic medications. Why?
If you have insurance, your copay at CVS may be the same as at Costco. The cash price difference only matters for uninsured patients or when the cash price beats the copay — which it often does for cheap generics. See our insurance vs cash price guide.
For maintenance medications, 90-day supplies change the economics significantly:
| Drug (90-day) | Costco | Walmart | Cost Plus | Amazon |
|---|---|---|---|---|
| Atorvastatin 20mg | $7.50 | $10.00 | $8.63 | $8.00 |
| Lisinopril 20mg | $5.20 | $10.00 | $7.28 | $7.00 |
| Metformin 1000mg | $8.80 | $10.00 | $8.31 | $8.00 |
| Sertraline 100mg | $9.50 | $10.00 | $9.85 | $9.00 |
| Omeprazole 40mg | $8.40 | $10.00 | $10.88 | $5.50 |
At 90-day quantities, Cost Plus becomes much more competitive (the $5 shipping is spread over 3 months), and the race tightens between Costco, Cost Plus, and Amazon.
For in-person generic fills, Costco is consistently the cheapest. For mail-order 90-day supplies, Cost Plus Drugs and Amazon Pharmacy (Prime) compete for the lowest price depending on the drug. For simplicity on common generics, Walmart's $4 program is hard to beat. There is no single cheapest pharmacy for every drug.
For a single fill, probably not. But if you fill 3-4 prescriptions monthly and save $2-3 each, that's $72-$144 per year. If Costco is 10-15 minutes farther than your nearest pharmacy and you combine the trip with other shopping, the savings add up. Alternatively, use mail-order (Cost Plus or Amazon) and eliminate the drive entirely.
From a drug-interaction safety standpoint, using one pharmacy is ideal because the pharmacist can review all your medications together. However, if you use multiple pharmacies, make sure each one has your complete medication list. Many people use a local pharmacy for urgent fills and a mail-order pharmacy for maintenance medications.
We update this comparison monthly. Get notified when prices change.