In this paper, we address the problem of associating mobile stations (MSs) with base stations (BSs) in an energy-efficient manner. We take a population game approach, which allows tractable analysis of many selfish mobiles without growing mathematical complexity. From our game-theoretical analysis, we prove that a simple power-dependent pricing by operators leads a Nash equilibrium to be equal to the optimal solution of a social optimization problem (i.e., no price-of-anarchy). We study three evolution dynamics of associating MSs, each expressed as a differential equation, all of which provably and/or numerically converge to the Nash equilibrium. Based on several considerations regarding implementation of association algorithms in practice, we found that asynchronicity and fast load tracking are the key components to practical algorithms. Motivated by this, we propose a practical energy-efficient user association mechanism, named BRUTE. To evaluate the performance of BRUTE, we implement a cellular network simulator using an event-driven simulator, SimPy, and perform extensive simulations under various scenarios including a real BS topology in U.K. Our simulation results show that BRUTE outperforms other conventional user association techniques.