I asked a similar question a while ago herehere.
I had great success with the PlayerRatings R package which implements the ELO method popularized by competitive chess along with some slightly more advanced methods such as Glicko and the package authors own method. The below pic shows historical team ranking for AFL clubs obtained using the 'Sticko' method. Model fitting parameters were optimized for binomial deviance over a training set using a genetic algorithm.
By comparing the rankings you can obtain the probability of a team beating another.