Scotland twice led in the first half with a try by Huw Jones and a spectacular 60-metre effort by Duhan Van der Merwe, who carved through five defenders. England hit back with two tries for Max Malins then edged 13-12 ahead at halftime with a penalty by Owen Farrell.
In the second period Ellis Genge went over to extend England's lead but scrum-half Ben White slipped through for Scotland's third try to keep it as a one-point game heading into the final quarter.
A penalty apiece kept it that way until Scotland put together a great attack to put Van der Merwe over in the corner four minutes from the end to retain the Calcutta Cup.