In an intervention which piles pressure on David Cameron to go further than legislation on tariffs and to come up with an alternative to Ed Miliband's energy price freeze, the ex-Prime Minister said price rises of more than 10% were unacceptable.
"When Ed Miliband made his suggestions just a few weeks ago, his heart was in the right place but his head had gone walkabout," Sir John told a lunch with the Westminster press gallery.
He added: "But he did touch on an issue that's very important."
The private sector is something the Conservative party support but when the private sector goes wrong or behaves badly, it is entirely right to make changes and put it right."
The ex-premier accepted there was "a lot being done" to help people in fuel poverty such as the winter fuel allowance and cold weather payments.
He added: "But at the moment I do not see how it can be in any way acceptable that with energy prices rising broadly 4% in terms of costs that the price to the consumer should rise by the 9-10% that we are hearing."
He insisted it was unacceptable that many people would have to "choose between keeping warm and eating".
Sir John added: "If we get this cold spell, the Government will have to intervene.
"If they do intervene, and it is costly, I would regard it as acceptable for them then to levy an excess profits tax on the energy companies and claw that money back to the Exchequer, where their primary job is to get the economy working and people back to work."
No 10 described the former PM's suggestion as "an interesting contribution" and did not completely rule it out, saying only: "We have no plans for this."
Labour said Sir John's intervention was deeply embarrassing for Mr Cameron.
Ed Miliband, its leader, tweeted: "Sir John Major makes Labour's argument: David Cameron stands up for the energy companies not hard-pressed families."
Speaking candidly to journalists, the former Tory leader spoke up for the "silent have-nots".
He said: "They're the dignified poor or near-poor and to the shame of decades of politicians, and I include myself in this, there are still millions and millions of them.
"Conservatives like me, should not be afraid to show we have a heart and a social conscience.
"If we do, we might not only regain seats that are no-go areas for Conservatives but far more importantly we might transform lives as a result as mine was once transformed over 50 years ago."
In a wide-ranging speech, he:
l Backed plans for a referendum on Europe, saying it would "put to bed" the argument that has "poisoned" Westminster politics for years, insisting Britons would vote to stay in.
l Claimed political parties were "losing traction" with voters with the Conservatives in the North and Labour in the South having become "fringe parties".
l Urged the Tories to reach beyond their heartlands, saying: "We need to win back seats in the towns and cities; in Liverpool, Sheffield, Manchester, Glasgow and Cardiff; it is do-able."