Congress gives BJP a bloody nose in Karnataka