Inland waters, such as lakes, reservoirs and rivers, are important sources of greenhouse gases to the atmosphere. A key parameter that regulates the gas exchange between water and the atmosphere is the gas transfer velocity, which itself is controlled by near-surface turbulence in the water. While in lakes and reservoirs, near-surface turbulence is mainly driven by atmospheric forcing, in shallow rivers and streams it is generated by flow-induced bottom friction. Large rivers represent a transition between these two cases. Near-surface turbulence has rarely been observed in rivers and the drivers of turbulence have not been quantified. We obtained continuous measurements of flow velocity and fluctuations from which we quantified turbulence, as the rate of dissipation of turbulent kinetic energy ($\varepsilon$) over the ice-free season in a large regulated river in Northern Finland. Atmospheric forcing was observed simultaneously. Measured values of $\varepsilon$ were well predicted from bulk parameters, including mean flow velocity, wind speed, surface heat flux and a one-dimensional numerical turbulence model. Values ranged from $\sim 10^{-9}$ m$^2$ s$^{-3}$ to $10^{-5}$ m$^2$ s$^{-3}$. Atmospheric forcing and river flow contributed to near-surface turbulence a similar fraction of the time, with variability in near-surface dissipation rate occurring at diel time scales, when the flow velocity was strongly affected by downstream dam operation. By combining scaling relations for boundary-layer turbulence at the river bed and at the air-water interface, we derived a simple model for estimating the relative contributions of wind speed and bottom friction in rivers as a function of flow depth.