Pawel Poljanski (BORA-hansgrohe) finished runner-up in the stage in consecutive days, jostling with Jose Rojas (Movistar) and Thomas de Gendt (Lotto-Soudal) for second place in the final 10 kilometres.
The 22-year-old Mohoric surged ahead of the leading group by attacking the descent of the Alto del Castillo towards the end of the 207km stage from Lliria to Cuenca, the longest stage of the race.
There was no change in the general classification with Chris Froome (Sky), Esteban Chaves (Orica-Scott) and the other general classification contenders finishing the race together, 8 minutes and 38 seconds behind Mohoric.
“I think we were always in control," Froome said. "It was a relatively more controlled day for us. It was less crazy than yesterday, that's for sure.
"I think today deserves a special mention for Ian Stannard and Christian Knees with how much work they did on the front. It's definitely thanks to them I'm still in red today.
"Everyone was pretty tired from yesterday so if one team wanted to take it on, they would have had to ride for the rest of the stage. So everyone was happy to just let us do the work.”