NURBS surfaces are among the most commonly used parametric surfaces in CAGD and Computer Graphics. This paper investigates shape modification of NURBS surfaces with geometric constraints, such as point, normal vector, and curve constraints. Two new methods are presented by constrained optimization and energy minimization. The former is based on minimizing changes in control net of surfaces, whereas the latter is based on strain energy minimization. By these two methods, we change control points and weights of an original surface, such that the modified surface satisfies the given constraints. Comparison results and practical examples are also given.