"I had a good swim, in a race like this it's not often you get a clean start but it seemed I hardly had a hand laid on me for a good 200m. I exited the water in second, had a very clean transition and took the front of the race.
"It was about one-third of the way through the lap I had Ruben Ruzafa bridge across, I managed to ride with him for a while but I made a couple of mistakes and a guy as classy as Ruben on the mountain bike really makes you pay for those. Eventually, I couldn't close the gap back to him.
"By the end of the first lap I had 2017 Xterra world champ Brad Weiss join me and we stayed as two for the rest of the bike working together to try to keep the gap as small as possible to Ruben."
A strong runner, Osborne had another good transition off the bike, picking up another 10s on Ruzafa, and went for broke on the run.
"I took the run out super hard and set about trying to bridge on up to Ruben. The gap was falling, the closest split I got was 55s but as the run went on the legs were starting to feel like they were ready to cramp and the gap started to go out the other way.
"Ruben is one classy guy, he's won four ITU Cross Tri and three Xterra world titles, one of the legends of the sport. I think I played my cards very well, tactically I didn't burn any unnecessary matches and tried to play the race out to my strengths. If I was to race it again I don't think I would play any different of a hand, Ruben was just incredibly strong."
It was Osborne's third time competing at the Cross Triathlon World Championships, the last being Australia in 2016 where he finished seventh.
"It's one of those races you think about a lot when you're out training and I guess it's this sort of dream that motivates me so much to get the work done. There can be a lot of lonely miles, not everyone enjoys training in the cold or rain or doing all the intensity across all three disciplines."
There is little time for rest as Osborne plans to race Xterra Czech Republic tomorrow.