"Psycho" star John Gavin -- who appeared in several other classics such as "Midnight Lace" and was the US Ambassador to Mexico under Ronald Reagan -- has died.

John -- who played Sam Loomis in the classic horror flick -- died Friday morning ... TMZ has learned. We're told he succumbed to complications from pneumonia and had battled leukemia for a long time.

John was first hospitalized just before Christmas and died just before 6 AM Friday at his Beverly Hills home, surrounded by his family.

Gavin starred as Julius Caesar in "Spartacus" and Steve Archer in "Imitation of Life." He also won a Golden Globe for "A Time to Love and a Time to Die" when he played Ernst Graber.

Gavin leaves behind his wife, Constance Towers, 4 kids and 3 grandchildren. Connie tells TMZ, "We lost our best friend, father and husband. We were so grateful to have him."

He was 86.