I think the best way to learn history is through literature. Get a good list of recommended texts that deal with whatever period you are learning about and read them first, before reading about it in non-fiction books.
That way, whenever you come across a fact in the non-fiction book, it will have someplace to latch onto in your mind. You won't just be thinking, oh, that's yet another boring skirmish between two factions, you'll be thinking, that's the little battle where Jack died in the novel!
It makes it much easier to remember everything as well as painting the events as more real and personal than you might otherwise see them.