In high-frequency bus services, maintaining the service regularity is a critical issue. The service regularity is directly related to the excessive waiting times (EWT) of passengers at bus stops. In a regular service, the EWT is minimized resulting in even headways between consecutive buses of the same line. In this study, we propose the combined use of rescheduling and bus holding to improve passengers' excessive waiting times. We model the dynamic rescheduling and bus holding problem as an integer nonlinear program (INLP) and we prove its NP-hardness. Our model considers the constraints of the original timetable – an issue that is usually neglected from most dynamic control methods. Given the NP-hardness of our mathematical program, we introduce a problem-specific heuristic to explore efficiently the solution space. The convergence rate of the proposed heuristic is tested against other solution methods, including simulated annealing with linear cooling, hill climbing and branch and bound with multi-start sequential quadratic programming. In addition, simulations with the use of actual operational data from a major bus operator in Asia Pacific demonstrate an up to 35% potential EWT improvement for a minor increase of 6% to the travel times of onboard passengers.