The Kelvin–Helmholtz flow is a shearing instability that occurs at the interface between two fluids moving with different speeds. Here, the two fluids are each of finite depth, but are highly viscous. Consequently, their motion is caused by the horizontal speeds of the two walls above and below each fluid layer. The motion of the fluids is assumed to be governed by the Stokes approximation for slow viscous flow, and the fluid motion is thus responsible for movement of the interface between them. A linearized solution is presented, from which the decay rate and the group speed of the wave system may be obtained. The nonlinear equations are solved using a novel spectral representation for the streamfunctions in each of the two fluid layers, and the exact boundary conditions are applied at the unknown interface location. Results are presented for the wave profiles, and the behaviour of the curvature of the interface is discussed. These results are compared to the Boussinesq–Stokes approximation which is also solved by a novel spectral technique, and agreement between the results supports the numerical calculations.