Though significant attention has been given to understanding the performance of a single-cell WLAN, performance evaluation of a group of interfering basic service sets (BSSs) within an extended service set (ESS) is still an open area. In this paper, we first demonstrate that a severe throughput imbalance occurs between downlink TCP flows even in the simplest of multi-cell WLANs via simulation and real world experiments; then, to solve this unfairness problem, we derive an analytical model that describes the interaction between TCP flows at the MAC layer, and formulate a throughput allocation problem as a nonlinear optimization problem subject to certain fairness requirements. Our formulation considers real world complexity such as hidden terminals, packet transmission retry limit, and the unique characteristics of TCP traffic. Solving our optimization problem yields the optimal MAC layer contention window settings that can lead each TCP flow to its target end-to-end throughput without the need for any per-flow queuing nor modification of the TCP sender. Simulation results show that our approach can achieve a fair allocation on the end-to-end throughput and attest to the accuracy of our proposed method.