...the vote share of the Congress went from 26.5% to 28.6%; the BJP dipped from 22.2 to 18.8: not a seismic shift at all. That the UPA gained so many seats is because of a number of diverse reasons, such as the changing pattern of local alliances that split the opposition vote in many places, such as in Maharashtra.
We are sure the reason for UPA seats gain may have been due to diverse reasons, but the way to look at marginal change is not to look at absolute change. It's always useful to look at marginal change in terms of the change itself.
An increase of Congress I vote from 26.5% to 28.6% is not an increase of 2.1% but an increase of 7.9%! Similarly a decrease of BJP vote from 22.2% to 18.8% is not a decrease of 3.4%, although itself significant, but a decrease of 15.3% - a significant loss of marginal electoral! When one looks at the difference between the electoral gains of Congress I and electoral loses of BJP, it is a swing of 23.2% of marginal electoral vote. Now that's significant number for Congress I and BJP.
Whether it was the media, choice of alliances, coherence of Congress I and incoherence of BJP, faces of Manmohan Singh and Sonia verses face of Advani (may be it was the bread of Singh and white skin of Sonia vs the wrinkle, still white, face of Advani that won the election for them), or simply silliness of Bharatiya voters (after all Congress I won the seat of the worst terrorist attack on 26/11, in South Mumbai, despite display of utter incompetence by Congress I state and central leaders), the win was a decisive win for Congress I and decisive lose for BJP.