The "Rocket Man" singer was incredibly close with Diana and re-wrote his classic "Candle in the Wind" following her death in 1997 as a tribute to his pal, with the global proceeds from the song going towards Diana's charities.
In his upcoming autobiography, "Me: Elton John", the star recounts several occasions he spent with the princess - including one night with the two actors.
Recalling the evening, he wrote in extracts obtained by Britain's Daily Mail newspaper: "Richard Gere and Diana seemed very taken with each other."
"As the rest of us chatted, I couldn't help notice a strange atmosphere in the room... Diana and Richard Gere's newly blossoming friendship was not going down well with Sylvester Stallone at all."
The "Rocky" star had apparently attended the dinner party intending to romance Diana.
After noticing Diana and Richard seemed to go missing, he remembered: "I asked David (Furnish, partner) to go and find them. He came back with both of them, but he was wearing a fairly ashen expression. 'Elton,' he mumbled. 'We have . . . a situation.'
"It transpired that he'd discovered Sylvester Stallone and Richard Gere in the corridor, squaring up to each other, apparently about to settle their differences over Diana by having a fist-fight."
Richard and Sylvester returned for dinner, he wrote, but the feud escalated once more after the meal was over.
"After dinner, Diana and Richard Gere resumed their position together in front of the fire, and Sylvester stormed off home," he added. "'I never would have come,' he (Sylvester) snapped, as David and I showed him to the door, 'if I'd known Prince f**kin' Charming was gonna be here.' Then he allegedly added: 'If I'd wanted her, I would've taken her!'"
Me: Elton John is released October 15.