Satellite Interferometric Synthetic Aperture Radar (InSAR) is playing an increasingly important role in the observation of coseismic surface deformation caused by earthquakes, and has been used to invert for subsurface fault structure and reveal earthquake source mechanisms. However, the mapping of complex non-planar or curved (e.g., listric-shaped) faults still remains a challenging task due to variable dips along the underground depth and the impenetrability of the deep crust. Here, we develop a set of new inversion algorithms to determine the listric fault geometry with InSAR- and GPS-observed surface deformation as the significant constraints. The fault surface with variable dip angles is discretized into consecutive sub-fault layers along the down-dip direction. A nonlinear iteration algorithm is used to minimize the objective function to determine the dip angle for each sub-fault layer. The proposed method is first tested using synthetic data to show its effectiveness for retrieval of varying fault geometry dips, and then applied to the 2008 Mw 7.9 Wenchuan earthquake that ruptured the Yingxiu-Beichuan fault for over 320 km along the southwest-northeast strike. The inversion shows that the dip angle of the seismogenic fault is up to 76° near the surface layer, and gradually decreases along the down-dip direction. A significant decrease in dip occurs within the depths of 6–15 km with a dip of 32° at a depth of 15 km. The dip angle decreases to 2° at a depth of 20 km, and finally merges with the subparallel PengGuan fault, which is basically consistent with geological investigations and seismic waveform data inversion. Using the inferred fault geometry, the slip model associated with the event is estimated. Five high-slip concentrations along the strike of the Yingxiu-Beichuan fault are recognized. The inversion misfit of InSAR data is reduced to 7.1 cm with a significant improvement compared to previous studies.