The 26-year-old from Fort St. John, B.C., had to hold himself back to prevent crashing into Davis as the skaters came out of the second bend but managed to retain enough speed to finish first in one minute 46.44 seconds.
"I surprised even myself today and it feels awesome," said Morrison, the 2008 world 1,500 champion. "It's the first time for me winning a 1,500 in a couple of years."
IRussian van Skobrev was second in 1:46.49, just edging defending champion Havard Bokko of Norway who finished third in 1:46.50.
“I had a great opener, probably the fastest opener I've ever done, actually,” said Morrison, who won two silvers and a bronze on this year's World Cup circuit. “I really attacked the first turn of the first lap trying to get the draft from Shani. I almost went faster than I was even expecting and I came up right behind him. But I kept skating and building on every turn.
Morrison insisted the first-turn incident with Davis did not interfere with him winning his first international race of the season.
“No, he got over right away and was out of the way. I was trying to get as close to him as possible. I was wanting to get into stride with him. He wasn't in my way at all."
Morrison was sixth in the 1,500 metres at last year’s world championships in Inzell, Germany, but he won the distance in Nagano, Japan, in 2008 and skated to a bronze medal in Richmond, B.C., in 2009.
Martina Sablikova of the Czech Republic won the women's 3,000 in 4:1.88 to complete an unbeaten season over the distance.
Stephanie Beckert of Germany was second in 4:04.09, putting in a powerful final lap to push defending champion Ireen Wust of the Netherlands into third.
Cindy Klassen was sixth in 4:07.14 and fellow Winnipegger Brittany Schussler tied for eighth in 4:09.53.
- with files from The Canadian Press.