Let G be a graph with real weights assigned to the vertices (edges). The weight of a subgraph of G is the sum of the weights of its vertices (edges). The MIN H-SUBGRAPH problem is to find a minimum weight subgraph isomorphic to H, if one exists. Our main results are new algorithms for the MIN H-SUBGRAPH problem. The only operations we allow on real numbers are additions and comparisons. Our algorithms are based, in part, on fast matrix multiplication. For vertex-weighted graphs with n vertices we obtain the following results. We present an O(nt(w,h)) time algorithm for MIN H-SUBGRAPH in case H is a fixed graph with h vertices and ω < 2.376 is the exponent of matrix multiplication. The value of t(ω, h) is determined by solving a small integer program. In particular, the smallest triangle can be found in O(n 2+1/(4-ω)) ≤ o(n2.616) time, the smallest K 4 in O(nω+1) time, the smallest K7 in O(n4+3/(4-ω)) time. As h grows, t(ω,h) converges to 3h/(6 - ω) < 0.828h. Interestingly, only for h = 4, 5, 8 the running time of our algorithm essentially matches that of the (unweighted) H-subgraph detection problem. Already for triangles, our results improve upon the main result of [VW06]. Using rectangular matrix multiplication, the value of t(ω, h) can be improved; for example, the runtime for triangles becomes O(n 2.575). We also present an algorithm whose running time is a function of m, the number of edges. In particular, the smallest triangle can be found in O(m(18-4ω)/(13-3ω)) ≤ o(m1.45) time. For edge-weighted graphs we present an O(m2-1/k log n) time algorithm that finds the smallest cycle of length 2k or 2k - 1. This running time is identical, up to a logarithmic factor, to the running time of the algorithm of Alon et al. for the unweighted case. Using the color coding method and a recent algorithm of Chan for distance products, we obtain an O(n3/log n) time randomized algorithm for finding the smallest cycle of any fixed length.