In QoS-aware service selection, a service requester seeks to maximize his utility by selecting service providers that charges the lowest service prices while meeting the requester's global QoS requirements. In existing selection approaches, a service requester focuses on finding providers based on their QoS and thereby ignores their service prices that could change with their QoS. High QoS may provide more benefits, but may require a high service price. As a result, the highest QoS may not produce the maximum utility. A service requester and service providers have a conflicting interest over service prices. We model the process of QoS-aware service selection as a price competition game. In the case where the providers' minimum prices are public knowledge, we propose an approach to compute a ε-Nash equilibrium that maximizes the service requester's utility. However, in general, a service provider would not reveal its minimum acceptable price. Thus, it is important for a service requester to predict the minimum price for a service that meets its QoS requirements. We propose a collaborative approach to predicting a provider's minimum price for a desired QoS based on prior usage experiences. Based on the prediction results of the service providers' minimum prices, we propose a multi-round mechanism where the service requester chooses a service for each task by using a Vickrey auction with reserve price. The experimental results show our approach can find the optimal service providers efficiently and effectively.