I have made my own implementation of BSplineFunction, to make it more usable:
BSplineCurveFunction[pts_?MatrixQ] :=
Module[{knots, deg},
knots = Rationalize@BSplineFunction[pts][[6, 1]];
deg = BSplineFunction[pts][[3, 1]];
Apply[Function,
List@
Sum[
pts[[i + 1]] BSplineBasis[{deg, knots}, i, #], {i, 0,
Length[pts] - 1}]]];
data = {{-1, 2.9}, {0.5, 3.6}, {1.0, 5.5}, {1.5, -4.2}, {2.0, 3.5}};
g[t_] = BSplineCurveFunction[data][t][[1]]
FindRoot[g[t] == 0, {t, 0, 0.2}]