BAM Nuttall will extend two platforms at Pitlochry station and modify the track layout.
Infrastructure works will also be carried out at Aviemore station, extending the double-track loop to the north of the station. Signalling systems at Pitlochry and Aviemore will also be altered and upgraded as part of the overall project.
The contract is part of an overall £57m Scottish government investment in the line linking Inverness and the Central Belt.
The works will enable ScotRail to introduce longer InterCity trains and reduce journey times.
Matthew Spence, route delivery director for Network Rail, said: “This work is vital to the introduction of InterCity trains on the line and the improved timetable that will deliver more services, improve stopping patterns and provide better connectivity for customers.”