It depends on the airplane. My experience is with the 744...
The airplane attempts to reach the selected altitude in 2 minutes. It will use thrust from idle to climb thrust to meet that goal at the selected airspeed. If idle or max climb won't make the time goal, it will use the max climb/descent availalbe while holding the airspeed constant.
FLCH controls airspeed more closely than VNAV. FLCH tries to hold it exactly; VNAV has a +/- 15 KIAS tolerance to follow the projected VNAV Path. When expecting vectors off the programmed route, FLCH is more predictable.