In this paper, we present a novel congestion-driven placement methodology. We analyze netlist structure and perform local congestion prediction to determine the amount of white space which will be attached to each cell. We place the modified netlist using a total-wire-length-driven placer and obtain an initial legal placement. We extract the congestion information and determine the target white space distribution. Finally, we apply placement migration, an incremental placement technique, to transform the initial placement into a placement which satisfies the target white space distribution. We provide experimental data to demonstrate the effectiveness of our congestion driven placement framework. Compared with the recent academic routability-driven placer Dragon [12], we achieve significant routability improvements in much shorter cpu run time.