The paper presents a Bézier triangle based isogeometric shape optimization method. Bézier triangles are used to represent both the geometry and physical fields. For a given physical domain defined by B-spline boundary, a coarse Bézier triangular parameterization is automatically generated. This coarse mesh is used to maintain parameterization quality and move mesh by solving a pseudo linear elasticity problem. Then a fine mesh for isogeometric analysis is generated from the coarse mesh through degree elevation and refinement. As the fine mesh retains the same geometric map as the coarse mesh, we can guarantee mesh validity with the coarse mesh only. This bi-level mesh allows us to achieve high numerical accuracy of isogeometric analysis and lower computational cost on mesh validity control and mesh movement. Due to the use of B-spline boundary, the optimized shape can be compactly represented with a relatively small number of optimization variables. Due to the use Bézier triangles, this shape optimization method is applicable to structures of complex topology and allows for local refinement for analysis. By representing the squared distance between two Bézier curves as a Bézier form, a distance check scheme is also introduced to prevent intersections of design boundaries and control the thickness of structural connections. Numerical examples on minimal compliance design and design of negative Poisson ratios are presented to demonstrate the efficacy of the proposed method.