In this paper, cognitive routing coupled with spectrum sensing and sharing in a multi-channel multi-hop cognitive radio network (CRN) is investigated. Recognizing the spectrum dynamics in CRN, we propose an opportunistic cognitive routing (OCR) protocol that allows users to exploit the geographic location information and discover the local spectrum access opportunities to improve the transmission performance over each hop. Specifically, based on location information and channel usage statistics, a secondary user (SU) distributedly selects the next hop relay and adapts its transmission to the dynamic spectrum access opportunities in its neighborhood. In addition, we introduce a novel metric, namely, cognitive transport throughput (CTT), to capture the unique properties of CRN and evaluate the potential relay gain of each relay candidate. A heuristic algorithm is proposed to reduce the searching complexity of the optimal selection of channel and relay. Simulation results are given to demonstrate that our proposed OCR well adapts to the spectrum dynamics and outperforms existing routing protocols in CRN.