The relative importance of ecological selection and geographical isolation in promoting and constraining genetic and phenotypic differentiation among populations is not always obvious. Interacting with divergent selection, restricted opportunity for gene flow may in some cases be as much a cause as a consequence of adaptation, with the latter being a hallmark of ecological speciation. Ecological speciation is well studied in parts of the native range of the three-spined stickleback. Here, we study this process in a recently invaded part of its range. Switzerland was colonized within the past 140 years from at least three different colonization events involving different stickleback lineages. They now occupy diverse habitats, ranging from small streams to the pelagic zone of large lakes. We use replicated systems of parapatric lake and stream populations, some of which trace their origins to different invasive lineages, to ask (i) whether phenotypic divergence occurred among populations inhabiting distinct habitats, (ii) whether trajectories of phenotypic divergence follow predictable parallel patterns and (iii) whether gene flow constrains divergent adaptation or vice versa. We find consistent phenotypic divergence between populations occupying distinct habitats. This involves parallel evolution in several traits with known ecological relevance in independent evolutionary lineages. Adaptive divergence supersedes homogenizing gene flow even at a small spatial scale. We find evidence that adaptive phenotypic divergence places constraints on gene flow over and above that imposed by geographical distance, signalling the early onset of ecological speciation.