Every year, millions of people die from epidemic diseases around the world. The current disease control is mainly conducted by mass vaccination strategies to immunize as many people as possible. However, due to side effects and high costs, it is difficult to be implemented within a large population. In this paper, we address this challenging problem by designing a target vaccination strategy which efficiently prevents diseases from spreading through the population by vaccinating a small fraction of the population. We take advantage of social relationship details extracted from mobile phone records to partition the whole population into communities. A two-level vaccination strategy is then proposed to prevent local and inter-community infections. We evaluate our approach by simulations over real world data and compare its performance with those of other methods. The experimental results show that our approach has the best performance in that it can reduce the number of infections significantly.