Surface-based models have been built to represent complex reservoir geometries. This paper presents a workflow for building surface-based reservoir models using NURBS curves, Coons patches and unstructured tetrahedral volume meshes. Surfaces are created as Coons patches based on NURBS curves. The surface mesh of the entire model is hybrid consisting of quadrilaterals and triangles. Geological regions are represented as volumes bounded by surfaces. Unstructured tetrahedral meshes are built to adapt to the bounding surfaces. Well configurations of location and geometry are particularly flexible, facilitated by mesh adaptation. All libraries for curve, surface and mesh generation are open-source. They are free-of-charge for non-commercial uses. The workflow provides a flexible alternative to commercial software packages for building surface-based models and unstructured meshes. The workflow is validated by simulating two-phase immiscible displacement and comparing to the analytical solution.