We extend the resolvent-based estimation approach recently introduced by Towne etal. (J. Fluid Mech., vol. 883, 2020, A17) to obtain optimal, non-causal estimates of time-varying flow quantities from low-rank measurements. We derive optimal transfer functions between the measurements and certain nonlinear terms that act as a forcing on the linearised Navier–Stokes equations, and show that the resulting transfer function to the flow state is equivalent to a multiple-input, multiple-output Wiener filter if the colour of the forcing statistics is known. A matrix-free implementation is developed based on integration of the direct and adjoint linearised Navier–Stokes operators, enabling application to the large systems encountered for transitional and turbulent flows without the need for a priori model reduction. Using a linearised Ginzburg–Landau problem, we show that the non-casual resolvent-based method outperforms a casual Kalman filter for general sensor configurations and recovers the Kalman filter transfer function in specific cases, leading to causal estimates at a significantly reduced computational cost. Additionally, our method is shown to be more accurate and robust than popular approaches based on truncation of the resolvent operator to its leading modes. The applicability of the method to transitional and turbulent flows is demonstrated via application to a (linearised) transitional boundary layer and a (nonlinear) turbulent channel flow. Errors on the order of 2 % are achieved for the boundary layer, and the channel flow case highlights the need to account for the forcing colour to achieve accurate flow estimates. In practice, our method can be used as a post-processing tool to reconstruct unmeasured quantities from limited experimental data, and, in cases where the transfer function can be accurately truncated to its causal components, as a low-cost estimator for flow control.