Major blamed Labor Party policies, The Guardian reported, especially the party's stand against selective grammar schools. He said Labor, which governed Britain from 1997 to 2010, "left a Victorian divide between stagnation and aspiration."
But the speech, delivered Friday but only reported on Monday, also appeared to be aimed at the current Conservative leadership. Major, the last Conservative prime minister until David Cameron, has said in recent months the government is not doing enough to prevent a growing economic divide.
In his speech in Norfolk, Major said those born into affluence are doing much better.
"In every single sphere of British influence, the upper echelons of power in 2013 are held overwhelmingly by the privately educated or the affluent middle class," he said. "To me from my background, I find that truly shocking."
Major, the son of a circus performer who later started a garden ornaments business in South London, attended state schools and never went to university. By contrast, Cameron went to Eton and Oxford, while Chancellor of the Exchequer George Osborne attended St. Paul's School in London, followed by Oxford.
"Our education system should help children out of the circumstances in which they were born, not lock them into the circumstances in which they were born," Major said.
Major, who has been knighted for his service, became prime minister in 1990 after Margaret Thatcher was ousted as party leader. He led the party into a successful election in 1992 but resigned as leader in 1997 after the Conservatives lost to Labor under Tony Blair in the biggest defeat by a governing party since the early 19th century.