We present dual heuristics for the directed cut formulation of the Steiner problem in graphs. These heuristics usually give tight lower and upper bounds, and are enough to quickly solve two thirds of the instances from the literature. For harder instances, we propose two exact algorithms using those heuristics: branch-and-ascent, an implicit enumeration without LP solving; and a branch-and-cut that starts from bases provided by dual heuristics, which may be called afterwards to improve convergence. These algorithms have a good practical performance and solved several open instances, including the I320 series and very large and degenerated problems from VLSI layout