We present an algorithm for finding shortest surface non-separating cycles in graphs embedded on surfaces in O(g3/2 V 3/2 log V + g5/2 V 1/2 ) time, where V is the number of vertices in the graph and g is the genus of the surface. If g = o(V 1/3−ε ), this represents a considerable improvement over previous results by Thomassen, and Erickson and HarPeled. We also give algorithms to find a shortest non-contractible cycle in O(gO(g) V 3/2 ) time, which improves previous results for fixed genus. This result can be applied for computing the (non-separating) face-width of embedded graphs. Using similar ideas we provide the first near-linear running time algorithm for computing the face-width of a graph embedded on the projective plane, and an algorithm to find the face-width of embedded toroidal graphs in O(V 5/4 log V ) time.