Summary Viscous fingering can be a major concern when waterflooding heavy-oil reservoirs. Most commercial reservoir simulators use low-order finite-volume/-difference methods on structured grids to resolve this phenomenon. However, this approach suffers from a significant numerical-dispersion error because of insufficient mesh resolution, which smears out some important features of the flow. We simulate immiscible incompressible two-phase displacements and propose the use of unstructured control-volume finite-element (CVFE) methods for capturing viscous fingering in porous media. Our approach uses anisotropic mesh adaptation where the mesh resolution is optimized on the basis of the evolving features of flow. The adaptive algorithm uses a metric tensor field dependent on solution-interpolation-error estimates to locally control the size and shape of elements in the metric. The mesh optimization generates an unstructured finer mesh in areas of the domain where flow properties change more quickly and a coarser mesh in other regions where properties do not vary so rapidly. We analyze the computational cost of mesh adaptivity on unstructured mesh and compare its results with those obtained by a commercial reservoir simulator on the basis of the finite-volume methods.