The Scots, weakened by the absence of five players on British and Irish Lions duty, scored tries through Ross Ford, Ruaridh Jackson and Fraser Brown. Flyhalf Jackson also kicked a penalty and two conversions.
Hooker Ford, who won his 110th cap to better Chris Paterson's tally and claim the Scottish record, crossed in the first half with his replacement Brown crashing over four minutes from time to give the visitors hopes of a late comeback.
Three yellow cards in the first half, two for Fiji and one for the Scots, set the tone for a hardfought battle played out in humid conditions in the capital of the Pacific island nation.
Scotland also beat the Italians in their first June international in Singapore two weeks ago.
(Reporting by Nick Mulvenney in Auckland, editing by Ian Ransom)