Controlling a complex network towards a desire state is of great importance in many applications. Existing works present an approximate algorithm to find the driver nodes used to control partial nodes of the network. However, the driver nodes obtained by this algorithm depend on the matching order of nodes and cannot get the optimum results. Here we present a novel algorithm to find the driver nodes for target control based on preferential matching. The algorithm elaborately arrange the matching order of nodes in order to minimize the size of the driver nodes set. The results on both synthetic and real networks indicate that the performance of proposed algorithm are better than the previous one. The algorithm may have various application in controlling complex networks.