City got off to the perfect start with a goal in the 10th minute. Danny Allsopp was pulled back in the box, and Stuart Green sent the keeper the wrong way with the penalty.
Allsopp should have doubled the lead when he was put one-on-one, but his shot bobbled against the post.
Elliott had a 32nd minute shot parried which France couldn't follow in.
Yeovil's Colin Pluck smashed a free kick against the crossbar just before half time, so it stayed 1-0 at the interval.
After the break, City managed to scramble away a Yeovil chance, with Junior Lewis diving in to block the shot.
On the hour mark, Elliott did brilliantly to keep control of the ball and put in a shot, but his 20-yard effort was turned around the post.
Yeovil, who had started the second half well, then hit back in the 64th minute. Andy Dawson has harshly adjudged to have fouled, and the free kick was met by the 6'8" centre back Hugo Rodrigues thumping a header in off the crossbar.
But City restored their lead with 75 minutes on the clock. The ball ran for Ian Ashbee just outside the box, and he curled a superbly controlled shot into the top corner.
City then did a professional job to deny Yeovil another comeback, and the 2-1 win ensures Division Two football for the Tigers next season. Doncaster's 0-0 draw at Boston and Huddersfield's 3-1 defeat to Mansfield means that Hull City will definitely finish as Division Three runners-up, no matter what happens on the final day of the season next week.
City line-up (4-4-2): Myhill; Hinds, Joseph, Delaney, Dawson; France, Ashbee, Lewis, Green (Price 87); Allsopp (Walters 79), Elliott.
Un-used subs: Musselwhite, Thelwell, Forrester.