In this article, a zigzag graphene nanoribbon (ZGNR)-based sensor was built utilizing the Atomistic ToolKit Virtual NanoLab (ATK-VNL), and used to detect nitric oxide (NO), nitrogen dioxide (NO2), and ammonia (NH3). The successful adsorption of these gases on the surface of the ZGNR was investigated using adsorption energy (Eads), adsorption distance (D), charge transfer (∆Q), density of states (DOS), and band structure. Among the three gases, the ZGNR showed the highest adsorption energy for NO with −0.273 eV, the smallest adsorption distance with 2.88 Å, and the highest charge transfer with −0.104 e. Moreover, the DOS results reflected a significant increase of the density at the Fermi level due to the improvement of ZGNR conductivity as a result of gas adsorption. The surface of ZGNR was then modified with an epoxy group (-O-) once, then with a hydroxyl group (-OH), and finally with both (-O-) and (-OH) groups in order to improve the adsorption capacity of ZGNR. The adsorption parameters of ZGNR were improved significantly after the modification. The highest adsorption energy was found for the case of ZGNR-O-OH-NO2 with −0.953 eV, while the highest charge transfer was found for the case of ZGNR-OH-NO with −0.146 e. Consequently, ZGNR-OH and ZGNR-O-OH can be considered as promising gas sensors for NO and NO2, respectively.