Uzbekistan international Victor Karpenko put Zico’s charges ahead nine minutes into the restart but Ilhom Boydedaev made it 1-1 six minutes later.
Aziz Alijonov scored Neftchi’s match-winner from the spot in the 26th minute.
Bunyodkor finished with 79 points from 30 games with 25 victories, four draws and one loss at the hands of Neftchi. Pakhtakor, however, finished five points behind the champions while Neftchi were further adrift by 14 points.
In other final round matches, Metallurg beat Andijan 1-0, Mashal downed Kyzylkum 3-1, Shurtan held AGMK goalless, Lokomotive thrashed Bukhara 4-1, Dynamo defeated Nasaf 3-0 and UzDongJu and Sogdiana played a 2-2 draw.
FINAL STANDINGS: 1. Bunyodkor 79, 2. Pakhtakor 74, 3. Neftchi 60, 4. Mashal 52, 5. Andijan 46, 6. Metallurg 42, 7. Dynamo 42, 8. Lokomotive 37, 9. Nasaf 35, 10. Shurtan 33, 11. AGMK 33, 12. Sogdiana 33, 13. Kyzylkum 32, 14. Navbahor 32, 15. Bukhara 26, 16. UzDongJu 13.