Spike and Angel are both champions, but Spike is the nicer person. Most of the time Spike was on Buffy before S7 he was a souless vampire, a complete remoseless monster and yet he helped Buffy. Sure he was selfish--souless creatures are selfish, but he also actually loved her which I think is interesting. Compared to Angelus souless Spike is a lap-cat. He doesn't rape his victims (as far as I know) and Angelus often rapes his. Of course murder is terrible, but even as a souless creature Spike doesn't seem to enjoy cruelity. Angelus loves to torment people, he completely destroyed Drucilla and enjoys causing pain. Souless Spike loves to fight and to win. He starts brawls and kills innocent people but his life wasn't about finding the next victim. If it was Buffy would have staked him long ago. Spike the souless vampire falls in love, feels a sense of responsiblity, and is tortured by the world and the woman that he cannot understand.
Once Spike gets a soul he becomes good immediately and returns to Buffy. He knows she doesn't love him and he does not try to make her care about him or resume their sexual relationship. Spike is a fundamentally good man. Just because he is a bad-ass who makes smart and sometimes scathing comments doesn't mean he is somehow less worthy of admiration. If scathing comments and putdowns were evil Cordy would be the devil and I think everyone agrees that Cordy is a champion in her own right.
Spike saved the world. That he diminishes his own accomplishment doesn't make it any less important. Spike didn't abandon his friends even though they, especially Buffy and Dawn, saw him at his very worst while souless. Both Angel and Spike fight for good but Angel's treatment of the people around him deeply distrurbs me. I can't belive after watching Angel that Angel does not share some sadistic tendecies with Angelus, who is after all part of him. Angel has done very good things. He saved his friends and countless inocent people on numerous occasions, yet a few of his actions trouble me deeply.
When Angel found out that Wesley took Connor, he doesn't try to talk to Wes. Instead, Angel attacks him and tries to smother him with a pillow. This is the action of a desperate man, but not perfectly understandable and definitely not justifible.
Buffy is a true champion she doesn't arbitrarily despense justice. Buffy kills demons but never harms humans. She was terrified when the trio tricked her into thinking she accidentally killed a girl and willing to turn herself into the police. More telling, Buffy completely rejected Willow's justification for killing Warren and tried desperately to stop her from killing Andrew and Jonathan. Angel is more like Willow than Buffy. He didn't actually kill Wesley, but he wanted to do so just like Willow wanted to kill Andrew. Rage and pain doesn't justify murder.
Another of Angel's actions which distrubs me was his willingness to kill Cordeila when she was posessed. Cordy was completely innocent and Angel loved her, yet he tried to stab her to death. Angel went through a lot, but killing an innocent person to save the world is never good. The ends just don't justify the means. Buffy went through a similiar situation with Dawn and rejected the option of killing her sister. Angel also relied on W&H to maintain Cory in her coma and to save her. That action was extreemly unfeeling especially for him. W&H had no reason to save Cordy and while Angel brooded and managed the company, she wasted away and suddenly died. Could he have saved her? I don't know, but he didn't really try.
I don't think Angel is a bad man. He has been through more horrible things than any person should ever experience and has done a lot of good for the world. Angel is complicated and not always good. Spike is a much nicer person than Angel. The question the is what makes a Champion motivation or deeds. Spike has the motivation and Angel has the deeds. Buffy has both.