In high frequency bus service lines, buses often come irregularly at the stops, often in bunches, due to the uncertainty of the passenger demand and behaviors, and the unexpected conditions on the roads. Vehicle holding is a commonly used strategy among a variety of control strategies in transit operation in order to reduce bus bunching and regulate bus headways. This paper investigates a control strategy of holding a group of buses at a single or multiple control point(s). By incorporating any possible passenger boarding activities during holding, a single control point problem is developed and extended to multiple control points to reduce the variance of headways for the downstream stops. The problem is a non-convex optimization programming with linear constraints that minimizes the total passenger waiting time both on-board and at stops. A heuristic is then developed that is easy and fast to implement, which makes it suitable for real-time implementation. The model is evaluated with a simulation case study by using the real-time bus operation data (i.e., Automatic Vehicle Location and Automatic Passenger Count data) from the Chicago Transit Authority (CTA). The simulation results show that considering the boarding activities in the total waiting time, our model mitigates the error propagation and maintains steady performance, compared to the common models in the literature, which do not consider boarding while holding.