River bed-load transport is a kind of dense granular flow, and such flows are known to segregate grains. While gravel-river beds typically have an “armoured” layer of coarse grains on the surface, which acts to protect finer particles underneath from erosion, the contribution of granular physics to river-bed armouring has not yet been investigated. Here we examine these connections in a laboratory river with bimodal sediment size, by tracking the motion of particles from the surface to deep inside the bed, and find that armour develops by two distinct mechanisms. Bed-load transport in the near-surface layer drives rapid, shear ratedependent advective segregation. Creeping grains beneath the bed-load layer give rise to slow but persistent diffusion-dominated segregation. We verify these findings with a continuum phenomenological model and discrete element method simulations. Our experiments suggest that some river-bed armouring may be due to granular segregation from below— rather than fluid-driven sorting from above—while also providing new insights on the mechanics of segregation that are relevant to a wide range of granular flows.