Lytton RCMP said the man was cycling on Highway 1 just south of Spences Bridge at around 1 a.m. PT when someone opened fire on him.
Police believe the unknown assailant then fled in a pickup truck.
The cyclist was taken to a local hospital and remains in stable condition late Sunday morning, police said.
"The investigation is ongoing and police are looking to speak with anyone who has any information regarding the incident, the suspect or the pickup truck," said RCMP Const. Kris Clark.
The man was taking part in the Cache Creek 600, a 600-kilometre two-day cycling marathon from Pitt Meadows to Cache Creek, which was advertised on the B.C. Randonneurs Cycling Club website.
Riders taking part left Pitt Meadows Saturday morning for the 300-kilometre ride through Mission, Agassiz, and up the Fraser Canyon through Spences Bridge to the turn-around point in Cache Creek.
Google Map: Spences Bridge