The invention discloses a terminal positioning method and a base station, comprising: A, establishing a historical data base storing position coordinates of more than one clustering point and an AOA, a TOA and an SNR of each clustering point; B, for each terminal to be positioned, acquiring the AOA, the TOA and the SNR of the terminal, or the AOA, the TOA, the SNR and an AGPS position coordinate; if the AGPS position coordinate is obtained, taking the obtained AGPS position coordinate as an initial position estimation of the terminal, if not, then finding a clustering point which is closest to the terminal to be positioned based on the obtained AOA, the TOA and the SNR and the AOA, the TOA and the SNR of each clustering point, and taking the found position coordinate of the clustering point as an initial estimation position of the terminal to be positioned; and calculating the approximate distance between every two random terminals to be positioned; C, obtaining the final estimation position of each terminal to be positioned by adopting sum product algorithm and iterative calculation based on the obtained approximate distance and the initial estimation position. The method provided by the invention is not affected by scene, and is capable of carrying out better positioning.