Adaptive divergence between adjoining populations reflects a balance between the diversifying effect of divergent selection and the potentially homogenizing effect of gene flow. In most models of migration-selection balance, gene flow is assumed to reflect individuals' inherent capacity to disperse, without regard to the match between individuals' phenotypes and the available habitats. However, habitat preferences can reduce dispersal between contrasting habitats, thereby alleviating migration load and facilitating adaptive divergence. We tested whether habitat preferences contribute to adaptive divergence in a classic example of migration-selection balance: parapatric lake and stream populations of three-spine stickleback (Gasterosteus aculeatus). Using a mark-transplant-recapture experiment on morphologically divergent parapatric populations, we showed that 90% of lake and stream stickleback returned to their native habitat, reducing migration between habitats by 76%. Furthermore, we found that dispersal into a nonnative habitat was phenotype dependent. Stream fish moving into the lake were morphologically more lake-like than those returning to the stream (and the converse for lake fish entering the stream). The strong native habitat preference documented here increases the extent of adaptive divergence between populations two- to fivefold relative to expectations with random movement. These results illustrate the potential importance of adaptive habitat choice in driving parapatric divergence.