Viscous fingering is a major concern in the waterflooding of heavy oil reservoirs. Traditional reservoir simulators employ low-order finite volume/difference methods on structured grids to resolve this phenomenon. However, their approach suffers from a significant numerical dispersion error due to insufficient mesh resolution which smears out some important features of the flow. We simulate immiscible incompressible two phase displacements and propose 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 based on the evolving flow features. The adaptive algorithm uses a metric tensor field based on solution interpolation error estimates to locally control the size and shape of elements in the metric. We resolve the viscous fingering patterns accurately and reduce the numerical dispersion error significantly. The mesh optimization, generates an unstructured coarse mesh in other regions of the computational domain where a high resolution is not required. We analyze the computational cost of mesh adaptivity on unstructured mesh and compare its results with those obtained by a commercial reservoir simulator based on the finite volume methods.