Christian Ponder threw two touchdown passes to tight end Kyle Rudolph and ran for another score to help the Vikings hand the 49ers their first defeat, 24-13 on Sunday.