This paper presents an accurate and efficient method to solve both point projection and point inversion for NURBS curves and surfaces. We first subdivide the NURBS curve or surface into a set of Bézier subcurves or patches. Based on the relationship between the test point and the control polygon of Bézier curve or the control point net of the Bézier patch, we extract candidate Bézier subcurves or Bézier patches and then find the approximate candidate points. Finally, by comparing the distances between the test point and candidate points, we are able to find the closest point. We improve its accuracy by using the Newton–Raphson method.