Surface blending is a useful operation in geometric design for rounding sharp edges or corners. Meanwhile, NURBS has already become the de facto industrial standard in existing CAD/CAM systems. Therefore, it is required to study how to blend two B-spline surfaces. However, two arbitrary B-spline surfaces (called base surfaces) are hard to be blended with a B-spline surface (called blending surface) because the knot vectors of the two base surfaces are usually mismatched. In this paper, we proposed a curve-based spline representation, i.e., the semi-structured B-spline surface, which is generated by skinning a series of B-spline curves with different knot vectors. By assigning suitable knot vectors to the head and tail skinned curves, the semi-structured B-spline surface can blend two B-spline surfaces smoothly without disturbing them at all. We formulated the B-spline surface blending problem as an optimization problem with continuity constraints, and the continuity between the base and blending surfaces can reach G(2) or C-2. Examples illustrated in this paper validate the effectiveness and efficiency of our method. (C) 2014 Elsevier Ltd. All rights reserved.