We present efficient and robust algorithms for intersecting a freeform surface with a ringed surface or a ruled surface. A ringed surface is given as a one-parameter family of circles. By computing the intersection between a freeform surface and each circle in the family, we can solve the intersection problem. We propose two approaches which are closely related to each other. The first approach detects certain critical points; and the intersection curve is constructed by connecting them in a correct topology. The second approach converts the intersection problem to that of finding the zero-set of two polynomial equations in the parameter space. The intersection between a freeform surface and a ruled surface can be computed in a similar way.