We propose a dynamic model of an oligopoly industry characterized by spatial competition between multi-store retailers. Firms compete in prices and decide where to open or close stores depending on demand and cost conditions, the number of competitors at different locations, and on location-specific private-information shocks. The model distinguishes multiple forces in the spatial configuration of store networks, such as cannibalization of revenue between stores of the same retail chain, economies of density, competition, consumer transportation costs, or positive demand spillovers from other stores. We develop an algorithm to approximate a Markov Perfect Equilibrium in our model, and propose a procedure for the estimation of the parameters of the model using panel data on number of stores, prices, and quantities at multiple geographic locations within a city. We also present a numerical example to illustrate the model and algorithm.