Abstract: A method for desulfurization and contaminant reduction of fuel oil is provided. The method includes mixing, in a first container, the fuel oil with a first catalyst to oxidize sulfur containing compounds in the fuel oil to obtain one or more of a sulfoxide and a sulfone and oxidize metal contaminants in the fuel oil to obtain oxides of the contaminants, thereby forming a first mixture; mixing, in a second container, the first mixture with a second catalyst and a third catalyst to extract sulfur and an oxygen from the sulfoxide and the sulfone, thereby obtaining a second mixture; separating, in a vapor recovery unit, the second catalyst from the second mixture to obtain a third mixture; and separating, from the third mixture, in a mechanical separator, the third catalyst, the sulfur, and the oxide of the metal contaminants to obtain a purified fuel oil.