Recently, a cooperative paradigm for single-channel cognitive radio networks has been advocated, where primary users can leverage secondary users to relay their traffic. However, it is not clear how such cooperation can be exploited in multi-channel networks effectively. Conventional cooperation entails that data on one channel has to be relayed on exactly the same channel, which is inefficient in multi-channel networks with channel and user diversity. Moreover, the selfishness of users complicates the critical resource allocation problem, as both parties target at maximizing their own utility. This work represents the first attempt to address these challenges. We propose FLEC, a novel design of flexible channel cooperation. It allows secondary users to freely optimize the use of channels for transmitting primary data along with their own data, in order to maximize performance. Further, we formulate a unifying optimization framework based on Nash Bargaining Solutions to fairly and effi...