This paper extends the simple network model of urban taxi services proposed by Yang and Wong (Yang, H., Wong, S.C., 1998. Transportation Research B 32, 235-246). The extensions include incorporation of congestion effects, customer demand elasticity, reformulation of the model and development of a new solution algorithm. Instead of the previous characterization of pure taxi movements in a network by a system of nonlinear equations, a two-level model formulation is proposed for taxi movements in congested road networks. The bi-level problem is a combined network equilibrium model that describes simultaneous movements of vacant and occupied taxis as well as normal traffic in a user-optimal manner for given total customer generation from each origin and total customer attraction to each destination. The upper-level problem is a set of linear and nonlinear equations ensuring that the relation between taxi and customer-waiting times and the relation between customer demand and taxi supply are satisfied. The lower-level problem can be solved by the conventional multi-class combined trip distribution and assignment algorithm, whereas the upper-level problem is solved by a Newtonian algorithm with line search. A numerical example is presented to illustrate the proposed model and algorithm and demonstrate the characteristics of the taxi services in congested road networks.