We have developed a catalytic cycle for sulfur ylide epoxidation which requires sub-stoichiometric amounts of sulfides. In this epoxidation process, a diazocompound reacts with a metal catalyst to give a metal carbenoid which in turn reacts with the sulfide to give an ylide. The ylide then reacts with the carbonyl compound to give an epoxide and returns the sulfide back into the catalytic cycle for further ylide formation and carbonyl epoxidation.