Ship course-keeping control is of great significance to both navigation efficiency and safety. Nevertheless, the complex navigational conditions, unknown time-varying environmental disturbances, and complex dynamic characteristics of ships pose great difficulties for ship course-keeping. Thus, a PSO-based predictive PID-backstepping (P-PB) controller is proposed in this paper to realize the efficient and rapid course-keeping of ships. The proposed controller takes the ship’s target course, current course, yawing speed, as well as predictive motion parameters into consideration. In the design of the proposed controller, the PID controller is improved by introducing predictive control. Then, the improved controller is combined with a backstepping controller to balance the efficiency and stability of the control. Subsequently, the parameters in the proposed course-keeping controller are optimized by utilizing Particle Swarm Optimization (PSO), which can adaptively adjust the value of parameters in various scenarios, and thus further increase its efficiency. Finally, the improved controller is validated by carrying out simulation tests in various scenarios. The results show that it improves the course-keeping error and time-response specification by 4.19% and 9.71% on average, respectively, which can efficiently achieve the course-keeping of ships under various scenarios.