Controlling the number of active assets (cardinality of the portfolio) in a mean-variance portfolio problem is practically important but computationally demanding. Such task is ordinarily a mixed integer quadratic programming (MIQP) problem. We propose a novel approach to reformulate the problem as a mixed integer linear programming (MILP) problem for which computer codes are readily available. For numerical tests, we find cardinality constrained minimum variance portfolios of stocks in S&P500. A significant gain in robustness and computational effort by our MILP approach relative to MIQP is reported. Similarly, our MILP approach also competes favorably against cardinality constrained portfolio optimization with risk measures CVaR and MASD. For illustrations, we depict portfolios in a portfolio map where cardinality provides a third criterion in addition to risk and return. Fast solution allows an interactive search for a desired portfolio.