We propose a fast method for fitting planar B-spline curves to unorganized data points. In traditional methods, optimization of control points and foot points are performed in two alternating time-consuming steps in every iteration: 1) control points are updated by setting up and solving a linear system of equations; and 2) foot points are computed by projecting each data point onto a B-spline curve. Our method uses the L-BFGS optimization method to optimize control points and foot points simultaneously and therefore it does not need to solve a linear system of equations or performing foot point projection in every iteration. As a result, the proposed method is much faster than existing methods