CO2 pushes fish to the surface because hemoglobin (the protein that binds oxygen in red blood cells) is affected by CO2 concentrations. In the body, areas with higher CO2 concentrations cause hemoglobin to release the bound oxygen it received from the lungs, or in this case, gills to the tissue and then another part of that protein binds CO2. This CO2 is brought to the lungs or gills, an area of high O2 concentration and low CO2 concentration. The CO2 is released and O2 is bound again. CO2 effects hemoglobin's affinity for O2, so in a sense they compete within the organism, but not for dissolution in the water. When CO2 is too high it inhibits hemoglobin's ability to release CO2 and then bind O2, so the fish go to an area with a higher concentration of O2 and lower CO2, the boundary of the water where gas exchange occurs.