I asked a similar question a while ago here.
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
By comparing the rankings you can obtain the probability of a team beating another.