In this paper, we present a novel joint power/channel allocation scheme that uses a distributed pricing strategy to improve the network's performance According to this scheme, the spectrum allocation problem is modeled as a non-cooperative game. A price-based iterative water-filling (PIWF) algorithm is proposed, which allows users to converge to the Nash Equilibrium (NE). This PIWF algorithm can be implemented distributively, with CRs repeatedly negotiating their best transmission powers and spectrum. We propose a protocol that implements our pricebased resource allocation algorithm. The proposed MAC protocol allows multiple CR pairs to first contend through an admission phase, and then to iteratively negotiate their transmission powers and spectrum via control-packet exchanges. Subsequently, CRs proceed concurrently with their data transmissions. Simulations are used to study the performance of our protocol and demonstrate its effectiveness in improving the overall network throughput and reducing the average transmission power.