They studied the diaries of medical officers on his Antarctic expeditions at Cambridge's Scott Polar Research Institute, which refer to a heart murmur, breathlessness and breakdowns.
Cardiologist Dr Jan Till and retired doctor Ian Calder said the symptoms were "consistent" with the defect.
Shackleton died from a heart attack, aged 47, in South Georgia in 1922.
Writing in the Journal of the Royal Society of Medicine, Dr Till, a consultant cardiologist at the Royal Brompton Hospital in London, and Mr Calder, a retired anaesthetist, said they believed he suffered from a congenital heart defect.
In 1903, during his first Antarctic expedition in the Discovery, Shackleton suffered breathlessness and weakness, according to the diary of team member Dr Edward Wilson.
His second expedition on the Nimrod was also marred by illness.
On 20 January 1908, medical officer Dr Eric Marshall wrote: "Heard S was very unwell after pulling on a rope. Will not hold myself responsible until he allows me to examine him. Something wrong?"
On another occasion he wrote: "Shacks collapsed after dinner tonight".
Shackleton was still "very unwell" the following day and had an irregular pulse.
He also mentioned a heart murmur.
In 1914, Shackleton made his third Antarctic trip on Endurance,
Dr James McIlroy, medical officer on the third and fourth expeditions, said Shackleton refused to allow him to listen to his heart when he became unwell.
He said Shackleton's wife had insisted he see a heart specialist before the Nimrod expedition and although he went, he refused to let the doctor listen to his heart.
From these and other diary entries the researchers concluded Shackleton's various symptoms were "consistent with an ostium secundum atrial septal defect" - commonly known as a hole in the heart.
On 5 January 1922, Shackleton died from a heart attack.
Polar explorer Sir Ernest Shackleton may have had a hole in his heart, researchers have concluded.