Migration is a commonly described phenomenon in nature that is often caused by spatial and temporal differences in habitat quality. However, as migration requires energy, the timing of migration may depend not only on differences in habitat quality, but also on temporal variation in migration costs. Such variation can, for instance, arise from changes in wind or current velocity for migrating birds and fish, respectively. Whereas behavioural responses of birds to such changing environmental conditions have been relatively well described, this is not the case for fish, although fish migrations are both ecologically and economically important. We here use passive and active telemetry to study how winter migrating roach regulate swimming speed and distance travelled per day in response to variations in head current velocity. Furthermore, we provide theoretical predictions on optimal swimming speeds in head currents and relate these to our empirical results. We show that fish migrate farther on days with low current velocity, but travel at a greater ground speed on days with high current velocity. The latter result agrees with our predictions on optimal swimming speed in head currents, but disagrees with previously reported predictions suggesting that fish ground speed should not change with head current velocity. We suggest that this difference is due to different assumptions on fish swimming energetics. We conclude that fish are able to adjust both swimming speed and timing of swimming activity during migration to changes in head current velocity in order to minimize energy use.