Early goals from Jon Stead and Brett Pitman put the Robins in control before Jamal Campbell-Ryce sealed the points shortly after half-time.
It was the first time Hull had lost on their travels since a 4-0 defeat at Burnley on September 28.
Keith Millen's men ended the campaign on a high following victory at Derby last weekend, and there was more good news for the Robins with Millen revealing prior to kick-off that he expects last season's top scorer Nicky Maynard to sign a new contract in the near future.
Both managers made two changes. On-loan West Ham defender Jordan Spence was recalled by the Premier League club this week so Millen handed Joe Edwards his debut. David James returned in goal as Dean Gerken dropped to the bench.
Hull boss Nigel Pearson recalled David Amoo and Hope Akpan in place of Aaron Mclean and the injured Richard Garcia.
Neither side had anything but end-of-season pride to play for but the Robins started brightly and went ahead after just three minutes.
Stead tucked the ball past Matt Duke from close range after being set up by Albert Adomah.
It was 2-0 after 14 minutes as Stead turned provider for Pitman, who chipped in from a tight angle down the left side of the area.
Marvin Elliott headed over and Pitman worked Duke with a long-range effort before Elliott again went close with another header midway through the first half.
Pitman dragged shots wide either side of the half-hour mark before Stead ended a dominant first 45 minutes for the Robins with an effort from the edge of the box that went narrowly wide.
Pearson replaced Amoo with Tom Cairney at the break and the substitute almost made an immediate impact, but his pinpoint cross was headed over by Mclean from six yards out.
The Robins responded by going up the other end and extending their lead.
Along punt forward by Jamie McAllister was chased down by Campbell-Ryce, who clinically dispatched the ball into the roof of the net from the edge of the area in the 56th minute.
James fumbled a Matty Fryatt shot just after the hour as Hull continued to disappoint.
Stead struck a post with an effort from outside the box with 12 minutes remaining, before substitute David Clarkson did likewise from 12 yards out in the closing stages.