This paper aims to show that Constraint Programming can be an efficient technique to solve a well-known combinatorial optimization problem: the search for a maximum clique in a graph. A clique of a graph G = (X, E) is a subset V of X, such that every two nodes in V are joined by an edge of E. The maximum clique problem consists of finding ω(G) the largest cardinality of a clique. We propose two new upper bounds of ω(G) and a new strategy to guide the search for an optimal solution. The interest of our approach is emphasized by the results we obtain for the DIMACS Benchmarks. Seven instances are solved for the first time and two better lower bounds for problems remaining open are found. Moreover, we show that the CP method we propose gives good results and quickly.