A deal was struck in Moscow on Friday in order to allow for an exchange of prisoners and both sides to recover their dead, Russia's foreign minister Sergey Lavrov told reporters after overseeing ten hours of talks between diplomats from the two countries.
It was not immediately clear how long the ceasefire would last, and there were reports from both sides on Saturday morning of continued fighting.
Mr Lavrov said the ceasefire should pave the way for talks on settling the conflict.
Russia’s top diplomat said the International Red Cross Committee would act as a mediator in the truce.
The latest outburst of fighting between Azerbaijani and Armenian forces began 27 September and left hundreds of people dead in the biggest escalation of the decades-old conflict over Nagorno-Karabakh.
The region lies in Azerbaijan and is recognised internationally as but has been under control of ethnic Armernian forces backed by Armenia since the end of a separatist war in 1994.
Since the beginning of the recent fighting, Armenia said it was open to a ceasefire, while Azerbaijan had previously made a truce conditional on the withdrawal of Armenian forces from Nagorno-Karabakh, arguing that the failure of international efforts to negotiate a political settlement left it no other choice than to resort to force.
Russia has co-sponsored peace talks together with the US and France as co-chairs of the Minsk Group, part of the Organisation for Security and Cooperation in Europe. They have not produced any deal, leaving Azerbaijan increasingly exasperated.
The latest round of hostilities has seen Azerbaijan's enduring ally Turkey take a high profile role in the conflict for the first time, offering support "on the battlefield or the negotiating table".
Armenian officials said Turkey had been sending Syrian mercenaries to fight on Azerbaijan's side. Turkey and Azerbaijan have denied the claims but friends and relatives of rebel fighters in Idlib told The Independent that hundreds of Syrians had been recruited for the conflict.
Azerbaijan said on Friday that 31 Azeri civilians had been killed and 168 wounded since the start of the recent conflict. It has not disclosed information about military casualties.
The Nagorno-Karabakh military said 404 of its service personnel and 22 civilians had been killed.
Additional reporting by agencies