No one was injured aboard the Boeing 777-300ER, but one passenger described those moments as a "so-close to death" experience.
SIA said in a statement Flight SQ368 was en route from Singapore to Milan when an engine oil warning message forced it to turn back to the city-state.
"The aircraft's right engine caught fire after the aircraft touched down at Changi Airport at around 6:50am," it said.
"The fire was put out by airport emergency services and there were no injuries to the 222 passengers and 19 crew on board.
"Passengers disembarked through stairs and were transported to the terminal building by bus."
The airline said passengers would be transferred to another aircraft to depart for Milan later in the day and that it would "be cooperating fully with the authorities in their investigations".
One passenger posted a harrowing account and a video of the engine fire on Facebook.
The 49-second video clip, apparently shot from a window seat, showed tongues of flame and smoke engulfing the right engine before they were put out.
"I just escaped death!!!!" Facebook user Lee Bee Yee said in a post that accompanied the video clip.
"Our Singapore Airline plane was leaking oil 3 hours [after] flying off and the plane had to be turned back. After reaching Changi Airport, as the plane was landing, the engine burst into flames!!!! Huge fire was burning!" Lee wrote.
An SIA spokesman, however, told AFP that the plane was one hour and 45 minutes into the flight when it turned back.
"It was a heart wrenching 5 mins! Waiting for the fire engine and fire fighters to put out the fire! They shot foam and water into the fire and eventually it was put out! We were so close to death!!" Lee added.
"I thank God I am alive! I going home to hug my kids."