OTTAWA -- Allan MacEachen, a driving force behind Canadian social policy changes of two Liberal governments, has died at the age of the 96.

MacEachen was one of Canada's most powerful cabinet ministers of the postwar era and held a variety of posts, including a term as minister of national health and welfare from 1965-1968 during the creation of medicare.

As labour minister, MacEachen was also instrumental in reforming the labour code and establishing a new standard for the minimum wage. His other portfolios also included finance and he twice served as Secretary of State for External Affairs.

Bob Rae, a friend and former Liberal MP, said in an interview that MacEachen -- who spoke fluent gaelic -- was deeply dedicated to the small communities of Cape Breton, yet was equally at home in the halls of power and in Parliament.

"He was the architect of the major social policy changes that took place in Canada in the mid 1960s," said Rae, who once faced MacEachen as an NDP critic and later gained his support in his 2006 bid for leadership of the party.

He describes MacEachen as both a left-leaning Liberal who was influenced by the co-operative movement founded by Rev. Moses Coady in Antigonish, N.S., while also being a political pragmatist who knew how to turn theory into reality.

His handling of key legislation under both the Liberal governments of Lester Pearson and Pierre Trudeau was critical, and MacEachen's skill as a parliamentarian also helped defeat former Tory prime minister Joe Clark in a non-confidence motion.

"He more than anyone was responsible for the return of Mr. Trudeau to power in 1980. He did some extraordinary things," said Rae.

"He was the greatest parliamentarian of our generation, certainly of the last half century."

David Dingwall, who was also an MP from Cape Breton Island and health minister in Jean Chretien's government, said that MacEachen served as a key mentor to many politicians.

He recalled him coming to his office frequently when he was leader of the Senate, sharing dark tea and biscuits and dispensing advice.

"He was a great listener, a man who could probe you with great questions and do it with easy and who resolve was unshakable. ... I shall miss him. He was a Canadian icon," he said.

Born in Inverness on Cape Breton Island in 1921, MacEachen was first elected in 1953 in Nova Scotia's Inverness-Richmond riding under Liberal prime minister Louis St. Laurent.

He was the son of a coal miner, MacEachen won again in 1957, but lost his seat in 1958 before winning eight more elections, including the last five while representing Cape Breton-Highlands Canso.

He also served as deputy prime minister and was appointed to the Senate in 1984 where he remained until 1996.

MacEachen, who ran an unsuccessful campaign for the leadership of the Liberal Party in 1968, was named an Officer of the Order of Canada in 2008.