We introduce a model of dynamic pricing in perishable goods markets with competition and provide conditions for equilibrium uniqueness. Pricing dynamics are rich because both own and competitor scarcity affect future profits. We identify new competitive forces that can lead to misallocation due to selling units too quickly: the Bertrand scarcity trap. We empirically estimate our model using daily prices and bookings for competing U.S. airlines. We compare competitive equilibrium outcomes to those where firms use pricing heuristics based on observed internal pricing rules at a large airline. We find that pricing heuristics increase revenues (4-5%) and consumer surplus (3%).