Samoa kept alive their slim hopes of reaching the quarter-finals in a disappointing Pool D clash in Auckland.
The hype beforehand promised a fierce, free-flowing encounter, but the only points of a scrappy first half came from the boot of Samoa's Tusi Pisi.
The Samoans underlined their dominance when Kahn Fotuali'i scored the first try of the match after the break.
Fiji responded through a try from Netani Edward Talei, but Samoa ensured the win when George Stowers crossed.
Defeat for Fiji ends their already slim chance of progressing from the group stage.
Samoa are second behind South Africa in the table with 10 points, but have played a game more than third-placed Wales (whose next opponents are Namibia on Monday), who beat them 17-10 one week ago in Hamilton.
This clash between the Pacific Island rivals was played in front of 60,000 fervent fans at Eden Park, but unfortunately the two teams could not replicate such excitement on the pitch.
"We did not put up a good enough fight so apologies for that," said Fiji fly-half Nicky Little after winning his 70th cap. "I do not think we fired a shot and in games like this you've got to.
"Some individuals did not want to keep the ball today. We have a number one priority to play our style of rugby and to keep the bums on the seats happy."
Samoa played the first 40 minutes almost exclusively in the Fiji half, but were unable to convert this possession into the points haul it perhaps warranted.
They instead had to rely on Pisi, who kicked three of four penalties and a drop goal to give them a 12-0 half-time lead.
The closest Samoa came to scoring a try before the break was when Pisi fed Sailosi Tagicakibau, who crashed over the line, but a superb last-ditch tackle from Naipolioni Nalaga prevented the ball being grounded.
Alesana Tuilagi also came close, but the referral proved that Nemia Kenatale had flicked the ball away from the onrushing attacker just in time, while Seremaia Bai kicked a penalty wide for Fiji late in the half.
The second half was a more open affair, but it was still Samoa in control and they were rewarded when scrum-half Kahn Fotuali'i darted over from the ruck following a huge tackle on Pisi from Sisa Koyamaibole.
Fiji hit back immediately as flanker Netani Edward Talei went over after receiving the ball on the right, with Waisea Sedre Luveniyali adding the extras.
But Samoa struck again shortly after with number eight George Stowers powering over to seal a deserved victory.
"This game is all about pressure and we kept the pressure on and got some points," said Samoa skipper Mahonri Schwalger.
"If you want to win against a strong team like Fiji you have got to get the points when you get down into their 22."
Samoa must now wait to see how Wales fare against Namibia before facing South Africa next Friday, with Warren Gatland's side playing Fiji next Sunday.
Fiji: Murimurivalu, Goneva, Lovobalavu, Bai, Nalaga, Little, Ranuku, Ma'afu, Koto Koto, Manu, Kalou, Nakarawa, Talei, Ravulo, Koyamaibole.
Replacements: Luveniyali for Little (57), Buatava for Ranuku (60), Somoca for Manu (68), Nasiga for Kalou (64), Qera for Ravulo (55).
Not Used: Talemaitoga, Vulivuli.
Samoa: Williams, Tagicakibau, G. Pisi, Mapusua, Tuilagi, T. Pisi, Fotuali'i, Taulafo, Schwalger, Johnston, Leo, Thompson, Tuifua, Fa'asavalu, Stowers.
Replacements: Fuimaono-Sapolu for G. Pisi (52), Paulo for Schwalger (65), Perenise for Johnston (52), Levi for Thompson (63), Salavea for Fa'asavalu (40).
Not Used: Sua, So'oialo.
Ref: Bryce Lawrence (New Zealand).