Alex Salmond has confirmed that all primary school children in Scotland aged up to eight will be offered free school meals as he resuscitated a stalled programme first promised seven years ago.

The first minister said that from next January all children in primary classes one to three would have the right to receive free lunches each school day, covering 165,000 children and saving families around £330 a year per child.

Salmond's announcement in the Scottish parliament follows a similar move, unveiled in September by the deputy prime minister, Nick Clegg, that children aged up to seven in all primary schools in England would be given free meals from September 2014, at a cost of nearly £600m.

The Scottish government's measure, which will cost £42m in its first full year of implementation, was first promised by Salmond's administration when it won the 2007 Holyrood election.

Pilot programmes in five local authorities boosted uptake of free school meals to 75% but the project then stalled. After Clegg's statement, Salmond's government came under intense pressure from 11 Scottish charities, churches and trade unions to honour that "long overdue" 2007 manifesto pledge.

The Scottish government said on Tuesday it was now able to fund the full programme using extra money from the Treasury following the autumn statement last month, as well as extending free childcare to 15,400 two-year-olds whose parents were in workless households and on benefits such as jobseeker's allowance.

Salmond said that overall package, worth a total of £114m, would help deal with the threat that 100,000 children in Scotland would be plunged back into poverty by UK government cuts in welfare spending and public funding.

Insisting tackling child poverty was a central mission of his government, Salmond said he could not see that statistic without "a profound sense of shock. It's certainly a figure which is impossible to forget."

The announcement was welcomed by the campaigners but was met by immediate accusations of cynicism from Scottish Labour and the Tories, who said it compared very poorly with Salmond's refusal to use his existing powers and funding to introduce free childcare for all preschool children.

Salmond has made free childcare central to his independence proposals, but a poll by the anti-independence campaign Better Together published on Sunday found that 64% of voters wanted it delivered now, not after 2016.

Speaking after Salmond's statement to Holyrood, Johann Lamont, the Scottish Labour leader, said: "Rather than help families [now], he chooses to make it a false offer for the referendum, when he has the power to do so now. He makes them wait so he can engineer a false argument to change the constitution."