"My game plan was to use my kicks and then counter with punches," Yan (12-1) said afterward. "He's a tough guy and very experienced. I knew if he didn't go down, I'd have to go the distance."
All three judges scored it in favor of Yan, 30-27.
The 26-year-old walked down Dodson (20-11) the entire fight and hurt him with a left hook in the second round. Dodson did score a flash knockdown of his own in that same round, but Yan immediately recovered and went on to win the frame.
Carmouche tops Pudilova by unanimous decision
UFC women's flyweight Liz Carmouche outlasts Lucie Pudilova and gets the unanimous decision victory.
According to UFC Stats, he out-landed Dodson 47 to 39 in total strikes, but the weight of his shots was also visibly heavier.
"Everything went well," Yan said. "I won. That's important. John was a very difficult opponent. He is very short, which makes the fight more complicated. I wanted to attack the body, but he was always moving, so it was very difficult. I was ready for this challenge. I was always keeping him in my range. He is No. 9 in the rankings. I'm always glad to fight and win against somebody who is higher-ranked than me."
Yan has been surging up the bantamweight rankings ever since his UFC debut last June. He is now 4-0 in the UFC and knocking on the door of a top-10 ranking.
"This is my fourth win in the UFC, so I'm perfect here," Yan said. "I have to talk to the UFC, but I would like to fight against Jimmie Rivera in June."
In other action from Prague:
Ankalaev controls Abreu for unanimous decision victory
UFC light heavyweight Magomed Ankalaev goes the distance with Klidson Abreu and wins via unanimous decision.
Heavyweight Stefan Struve (29-11) picked up his first win since October 2016, submitting Marcos Rogerio de Lima (16-6-1) via arm-triangle at 2:21 of the second round. Struve survived an ugly opening frame, in which he ate a big shot and spent the majority of the time on his back. He recovered in the second round, taking de Lima down and eventually securing the choke. The win snaps a three-fight skid for the 31-year-old Struve.
After the fight, an emotional Struve removed his gloves and left them in the center of the Octagon, which fighters often do as a symbol that they are retiring. "I lost my last two before this, and to get a win like this ... a lot of people end their careers too late," Struve said. "This is not 100 percent, but I feel this is a great moment."
Naurdiev handles Prazeres in unanimous decision
Ismail Naurdiev dominates Michel Prazeres to win their welterweight fight by unanimous decision.
In his first appearance since December 2017, Polish light heavyweight Michal Oleksiejczuk (13-2) made quick work of Gian Villante (17-11) in a 94-second knockout. The finish began with a nasty left hook to the body. Villante took a step back from the shot, then dropped to a knee and covered up. Oleksiejczuk went in for follow-up shots, and it was clear the fight was over. It is Oleksiejczuk's ninth career knockout, and he has not lost since November 2014.
Ferreira dominates to unanimous decision
UFC lightweight Diego Ferreira controls his fight vs. Rustam Khabilov and takes the victory by unanimous decision.
Ranked flyweight Liz Carmouche (13-6) is now on a two-fight win streak, following a unanimous decision victory over Lucie Pudilova (8-3). Carmouche won the bout via official scores of 30-27, 29-28 and 29-28. Carmouche's wrestling proved key in what turned into a very close, competitive fight. Carmouche, of San Diego, scored a handful of takedowns and had some success controlling Pudilova on the floor. She did suffer a cut near her hairline from Pudilova elbows, but responded with strikes on the ground. She is 4-1 in her last five.
Ismagulov tops Alvarez by unanimous decision
Damir Ismagulov handles Joel Alvarez, winning via unanimous decision in their lightweight fight.
Russian light heavyweight Magomed Ankalaev (10-1) defeated Klidson Abreu (14-3) via unanimous decision, by scores of 30-27, 30-27 and 29-28. Ankalaev out-landed Abreu in total strikes 66 to 32, per UFC Stats, in a mostly stand-up fight. It's Ankalaev's second win in a row, following a TKO finish in September.
Welterweight Dwight Grant (9-2) scored a highlight-reel knockout against Carlo Pedersoli (11-3) in the waning moments of the opening round. With just seconds left in the frame, Grant landed an overhand right that sent Pedersoli's mouthpiece flying across the cage. Pedersoli fell face forward to the canvas, and Grant landed several follow-up shots to secure the finish at the 4:59 mark. A former contestant on Dana White's Tuesday Night Contender Series, Grant gets his first official win in the UFC.
Featherweight Chris Fishgold (18-2-1) delivered a spectacular performance in a second-round submission of David Teymur (6-3). Fishgold, of Liverpool, England, finished the bout at 1:10 of the second round via rear-naked choke. Fishgold was simply too much for Teymur on the ground, as he nearly secured an armbar finish in the first round as well. It's a nice bounce-back result for Fishgold, 26, who suffered a TKO loss to Calvin Kattar in his UFC debut last October.
Canadian flyweight Gillian Robertson (6-3) earned her third submission win in the UFC, tapping Veronica Macedo (5-3) via rear-naked choke at 3:27 of the second round. The entire fight felt like one prolonged scramble at times, so it was fitting it ended in one. As the two jockeyed for position on the floor, Robertson seized control of Macedo's back and slipped her right arm under her opponent's neck. Robertson is now 3-1 in the UFC.
Lightweight Damir Hadzovic (13-4) finished Marco Polo Reyes (8-5) via TKO at 2:03 of the second round, after moving to back mount and raining down shots. Hadzovic, of Bosnia and Herzegovina, improves to 3-2 with the finish, and it is his seventh career knockout. Hadzovic did some nice work on the feet before finishing Reyes on the floor in the second frame.
Austrian welterweight Ismail Naurdiev (18-2) cruised to a decision win against Michel Prazeres (26-3), snapping the Brazilian's eight-fight win streak in the process. Naurdiev, 22, nearly submitted Prazeres in the opening round and came close to a TKO finish in the third. His work rate was fantastic, as he out-struck Prazeres 121 to 20, per UFC Stats. Judges awarded the Austrian scores of 30-26, 30-27 and 30-27.
Brazilian lightweight Diego Ferreira (15-2) dominated Rustam Khabilov (23-4) in a unanimous decision, earning judges scores of 30-27, 30-27 and 29-28. Ferreira defended Khabiolov's attempts to get the fight to the floor, and managed to get right back to his feet any time he surrendered a takedown. It's four wins in a row now for Ferreira, 34, who has fought in the UFC since 2014.
Russian lightweight Damir Ismagulov (18-2) improved to 2-0 in the UFC with a unanimous decision win against Joel Alvarez (15-2). All three judges scored the contest 30-27 in favor of Ismagulov, who outworked Alvarez on the feet.