Hull reclaimed second spot after a comprehensive home win, while Peterborough climbed off the bottom of the table thanks to a surprise away victory.