Cushion chambers (8) disposed in the vicinity of both ends of a hydraulic cylinder (1) to throttle inflow or outflow of an operating oil caused by a piston (5) moving close to a piston stroke end, pressure sensors (16, 17) to detect pressures in the cushion chambers (8), and a control valve (13) disposed in a passage to supply/drain the operating oil to and from oil chambers (6, 7) of the hydraulic cylinder (1) for varying a flow amount of the operating oil are provided. A controller (9) varies an opening degree of the control valve (13) within a piston stroke end range based upon outputs of the pressure sensors (16, 17), adjusts a cushion pressure and controls a moving speed of the piston (5). Thereby deceleration degrees of the piston (5) can be freely adjusted within the piston stroke end range based upon a change of the operating conditions of the hydraulic cylinder (1).