When a p-n junction is formed, a diffusion phenomena causes electrons from the n-doped region to diffuse to the p-doped region. At the same time (even if it's an abstraction) holes diffuse from the p-type region to the n-type one. The atoms that lose a carrier (electron or hole) become ions, which means that instead of being neutral, they have a positive or negative net charge. This happens because the ideal equilibrium would have the same concentration of mobile carriers equal all over the region.
However, this diffusion causes the growth of a region, populated by ions, called depletion region, because all atoms have lost their carrier. These ions, as we said, are electrically charged, and cause an electric field directed from the n-region to the p-region, pushing carriers in the opposite way than diffusion. Therefore an equilibrium is reached in which the current (movement of carriers) caused by diffusion is perfectly balanced by the current caused by the electric field (ohmic current).
Effect of biasing
Applying a potential to the junction causes a perturbation on this equilibrium, making one of the currents dominant on the other. Reverse biasing the junction causes the ohmic current to prevail, while forward biasing increases the diffusion current.
Now, the diffusion current is a much stronger phenomena, from which derives the exponential growth of the forward bias current with the bias voltage. Ohmic current, on the other side, is much weaker, and saturates quite soon (neglecting avalanche effect) because the width of the depletion region (which determines the resistivity) is proportional to the reverse bias voltage.
It is not true that the valence band cannot contribute to conduction. That's just what happens in P-type semiconductors. The doping alters the band structure of the semiconductor so that there are "missing" electrons (holes) in the valence band. This allows other electrons to "move" from an atom to a nearby one without jumping into the conduction band: they fill a hole "near to them", leaving a hole "behind them". This mechanism is modeled by virtual charges (the holes) moving in the opposite direction. All this happens in the valence band, and this is (intuitively) the reason why the mobility of holes is less than that of electrons. Actual conduction is always due to moving electrons, but when conduction happens in the valence band all is more "difficult" (the energy of the moving electrons filling hole after hole is less than the energy they would have if they were in the conduction band). Bear in mind that this is only a qualitative explanation. This is something in the realm of quantum mechanics and solid-state physics, and the equations involved are rather nasty.
BTW, what you mention by "holes attract electrons from conduction band" is called recombination. In a P-type semiconductor there are very few electrons in conduction band, and they are due to thermal generation (the higher the temperature the higher the probability that a free electron-hole pair will be generated). So it is true that very few electrons in conduction band will contribute to current in P-type semiconductor (they are the thermally-generated minority carriers). But the bulk of the current is supported by holes "moving" in valence band, as I explained above.
Perhaps it might be easier to start at the energy state.
Free electrons (those moving from one atom to another) are in the conduction band and holes (the lack of an electron in an orbit) are in the valence band (same link).
The conduction band is at a higher energy level than the valence band and that means that things move faster. More interestingly, for an electron to move from the conduction band to the valence band (and fill the hole) it must lose some energy.
From a more intuitive perspective, when a hole appears in a valence orbit, not all possible electrons will drop into it; quite a number will pass by until an electron that has (crucially) lost sufficient energy to move into a lower energy band will fill the hole.
When said electron left an orbit (creating a hole), it was because it had energy added perhaps by a collision or even just from heat (otherwise it could not take on a higher energy location in the conduction band). Only when it has used up that energy (by moving or maybe colliding with another object which can eject a photon - this means the electron has lost 1 photon worth of energy) can it lose that extra energy and drop into the valence band.
This is perhaps explained by a more detailed look at energy levels