The San Francisco 49ers needed overtime to see off the Cincinnati Bengals with Brandon Aiyuk spectacularly diving in down the left sideline for the winning touchdown.